配套課件:《Java程序設(shè)計教程》_第1頁
配套課件:《Java程序設(shè)計教程》_第2頁
配套課件:《Java程序設(shè)計教程》_第3頁
配套課件:《Java程序設(shè)計教程》_第4頁
配套課件:《Java程序設(shè)計教程》_第5頁
已閱讀5頁,還剩984頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、JAVA程序設(shè)計本章學(xué)習(xí)目標(biāo): 熟悉Java語言的產(chǎn)生、特點以及編寫規(guī)范 掌握J(rèn)ava開發(fā)環(huán)境和開發(fā)工具的使用 掌握編寫簡單的Java程序 掌握創(chuàng)建、編譯和運行Java程序的基本步驟第一章 Java概述第1節(jié)partJava簡介 Java是一種可用于編寫跨平臺應(yīng)用軟件的面向?qū)ο蟪绦蛟O(shè)計語言,也是Java SE(標(biāo)準(zhǔn)版)、Java EE(企業(yè)版)和Java ME(微型版)三種平臺的總稱。由于Java具有“一次編寫,多處應(yīng)用(Write Once,Run Anywhere)”的特點,使其廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng)等不同的媒介。Java具有卓越的通用性

2、、高效性、平臺移植性和安全性,為其贏得了大量的愛好者和專業(yè)社群組織。Java簡介本節(jié)概述 Java自1995誕生,至今已經(jīng)20多年的歷史。Java的名字來源于印度尼西亞爪哇島的英文名稱。該地因盛產(chǎn)咖啡而聞名,因此,JAVA的圖標(biāo)也正是一杯正冒著熱氣的咖啡,如圖1.1所示。Java來自于Sun公司的一個“綠色項目(Green Project)”,其原先的目的是為家用消費電子產(chǎn)品開發(fā)一個分布式代碼系統(tǒng),目標(biāo)是把E-mail發(fā)給電冰箱、電視機等家用電器,對這些電器進行控制以及信息交流。詹姆斯高斯林(James Gosling)加入到該項目小組。開始,項目小組準(zhǔn)備采用C+,但C+太復(fù)雜,安全性差,最后

3、高斯林用C+開發(fā)了一種新的語言O(shè)ak(橡樹),這就是Java的前身,在1994年Oak被正式更名為Java。1.1.1Java起源Java起源 詹姆斯高斯林(James Gosling)也被人們親切的稱為Java之父,如圖1.2所示。 從1995年Java誕生以來,Java先后經(jīng)歷了8個版本的變更,當(dāng)然版權(quán)的所有者也一度由Sun變?yōu)镺racle。如表1-1所示為Java發(fā)展過程中幾個重要的里程碑。1.1.2Java發(fā)展史Java發(fā)展史表1-1 Java發(fā)展史Java語言之所以受到廣大編程愛好者的青睞,是因為Java有著以下幾方面的語言優(yōu)勢。1.1.3Java的特點Java的特點資源開源性跨平臺

4、性健壯、安全性高性能性簡單性面向?qū)ο髣討B(tài)性多線程支持分布式網(wǎng)絡(luò)應(yīng)用第2節(jié)partJava體系(Java Enterprise Edition,Java企業(yè)版)Java EE是企業(yè)級解決方案,支持開發(fā)、部署和管理等相關(guān)復(fù)雜問題的體系結(jié)構(gòu),主要用于分布式系統(tǒng)的開發(fā)、構(gòu)建企業(yè)級的服務(wù)器應(yīng)用,例如,電子商務(wù)網(wǎng)站、ERP系統(tǒng)等。Java EE在SE基礎(chǔ)上定義了一系列的服務(wù)、API和協(xié)議等,如Servlet、JSP、RMI、EJB、Java Mail、JTA等。Java EE(Java Micro Edition,Java微型版)Java ME是各版本中最小的,是在SE基礎(chǔ)上進行裁剪和高度優(yōu)化,目的是在小

5、型的受限設(shè)備上開發(fā)和部署應(yīng)用程序,例如,手機、PDA、智能卡、機頂盒、汽車導(dǎo)航或家電系統(tǒng)等。Java ME遵循微型開發(fā)規(guī)范和技術(shù),如MIDLet、CLDC、Personal Profile等。Java ME1.2.1Java應(yīng)用平臺(Java Standard Edition,Java標(biāo)準(zhǔn)版)Java SE是Java技術(shù)的基礎(chǔ),適用于桌面系統(tǒng)應(yīng)用程序(Application)、網(wǎng)頁小程序(Applet)以及服務(wù)器程序的開發(fā)。Java SE主要包括Java語言核心技術(shù)和應(yīng)用,如數(shù)據(jù)庫訪問、I/O、網(wǎng)絡(luò)編程、多線程等。Java SE 1999年,在美國舊金山的Java One大會上,Sun公司公布

6、了Java體系架構(gòu),該架構(gòu)根據(jù)不同級別的應(yīng)用開發(fā)劃分了三個版本:Java應(yīng)用平臺1.2.1Java應(yīng)用平臺Java應(yīng)用平臺 JDK(Java Development Kit,Java開發(fā)工具包)是Sun公司提供的一套用于開發(fā)Java程序的開發(fā)工具包。JDK提供編譯、運行Java程序所需要的各種工具及資源,包括Java開發(fā)工具,Java運行時環(huán)境,以及Java的基礎(chǔ)類庫。1、JDK JRE(Java Runtime Environment,Java運行時環(huán)境)是運行Java程序所依賴的環(huán)境的集合,包括類加載器、字節(jié)碼校驗器、Java虛擬機、Java API。JRE已包含在JDK中,但是如果僅僅是

7、為了運行Java程序,而不是從事Java開發(fā),可以直接下載安裝JRE。2、JRE SDK(Software Development Kit,開發(fā)工具包)在版本1.2到1.4時,被稱為Java SDK,在某些場合下,還可以看到執(zhí)行過時的術(shù)語。4、SDK JVM(Java Virtual Machine,Java虛擬機)是一個虛構(gòu)出來的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java虛擬機有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java虛擬機屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,只需將Java語言程序編譯成在Java虛擬機上運行的目標(biāo)代碼(.clas

8、s,字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。3、JVM1.2.2專有名詞專有名詞1.2.3Java跨平臺原理 JVM在具體的操作系統(tǒng)之上運行,其本身具有一套虛擬指令,但它通常是在軟件上而不是在硬件上實現(xiàn)。JVM形成一個抽象層,將底層硬件平臺、操作系統(tǒng)與編譯過的代碼聯(lián)系起來。Java字節(jié)碼的格式通用,具有跨平臺特性,但這種跨平臺建立在JVM虛擬機的基礎(chǔ)之上,只有通過JVM處理后才可以將字節(jié)碼轉(zhuǎn)換為特定機器上的機器碼,然后在特定的機器上運行。JVM跨平臺特性如圖1.5所示:Java跨平臺原理1.2.3Java跨

9、平臺原理 JVM虛擬機是Java程序具有“一次編譯,多處應(yīng)用”的特性,如圖1.6所示。首先,Java編譯器將Java源程序編譯成Java字節(jié)碼;其次,字節(jié)碼在本地或通過網(wǎng)絡(luò)傳達給JVM虛擬機;再次,JVM對字節(jié)碼進行即時編譯或解釋執(zhí)行后形成二進制的機器碼;最后,生成的機器碼可以在硬件設(shè)備上直接運行。 JVM執(zhí)行時將在其內(nèi)部創(chuàng)建一個運行時環(huán)境,每次讀取并執(zhí)行一條Java語句會經(jīng)過三個過程:裝載代碼、校驗代碼和執(zhí)行代碼,如圖1.7所示。1.2.3Java跨平臺原理Java字節(jié)碼有兩種執(zhí)行方式: 解釋執(zhí)行方式。 JVM通過解釋器將字節(jié)碼逐條讀入,逐條解釋翻譯成對應(yīng)的機器指令。很顯然,這種執(zhí)行方式雖靈

10、活但執(zhí)行速度會比較慢。為了提高執(zhí)行速度,引入了JIT(Just-in-time compilation)技術(shù)。 即時編譯方式(即JIT編譯)。 當(dāng)JIT編譯啟用時(默認(rèn)是啟用的),JVM將解釋后的字節(jié)碼文件發(fā)給JIT編譯器,JIT編譯器將字節(jié)碼編譯成機器代碼,并把編譯過的機器碼保存起來,已備下次使用。為了加快執(zhí)行速度,JIT目前只對經(jīng)常使用的熱代碼進行編譯。 通常采用的是解釋執(zhí)行方式,由于JVM規(guī)格描述具有足夠的靈活性,使得將字節(jié)碼翻譯為機器代碼的工作具有較高的效率。對于那些對運行速度要求較高的應(yīng)用程序,解釋器可將Java字節(jié)碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。

11、第3節(jié)partJDK工具 “工欲善其事,必先利其器?!痹陂_發(fā)的第一步,必須搭建起開發(fā)環(huán)境。本書以Java SE Development Kit 8在Windows操作系統(tǒng)的下載、安裝作為范例,講解整個Java開發(fā)環(huán)境的安裝及配置過程。JDK工具本節(jié)概述1.3.1JDK介紹 JDK(Java Development Kit)是Sun Microsystems公司針對Java開發(fā)人員發(fā)布的免費軟件開發(fā)工具包。JDK是整個Java的核心,是學(xué)好Java的第一步,如果沒有JDK,則無法安裝或者運行Eclipse。普通用戶并不需要安裝JDK來運行Java程序,而只需要安裝JRE(Java Runtime

12、 Environment),而程序開發(fā)者必須安裝JDK來編譯、調(diào)試程序。 從Sun公司的JDK 5.0開始,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高,其環(huán)境變量也可以不需要手動配置。JDK介紹Java虛擬機可以運行在各種操作系統(tǒng)平臺上,負(fù)責(zé)解析和執(zhí)行Java程序。Java運行環(huán)境提供了最基礎(chǔ)的Java類以及各種實用類。如java.lang、java.io、java.util、java.awt、java.swing和java.sql包中的類都位于JDK類庫中。Java繼承類庫(rt.jar)1.3.1JDK介紹這些開發(fā)工具都是可執(zhí)行程序,主要包括:javac.ex

13、e(編譯工具)、java.exe(運行工具)、javadoc.exe(生成JavaDoc文檔的工具)和jar.exe(打包工具)等。Java開發(fā)工具 JDK包含一批用于Java開發(fā)的組件,其中包括以下幾部分:1.3.2JDK安裝配置下述內(nèi)容分別介紹JDK下載、安裝及配置。JDK安裝配置1. 下載JDK進入Oracle官方網(wǎng)站可以下載JDK的最新版本。Oracle官方網(wǎng)站:JDK8的下載地址:/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlJDK 8.0的下載頁面如圖1.8所示。下載JDK 8.0的Windows x64

14、版本,即jdk-8u171-windows-x64.exe。由于不同版本的下載地址會經(jīng)常發(fā)生變化,最有效的方法是訪問官方網(wǎng)站,通過導(dǎo)航找到下載頁面;如果是32位操作系統(tǒng),則下載對應(yīng)的“x86”版本。1.3.2JDK安裝配置2. 安裝JDK【步驟1】運行JDK的安裝文件,進入JDK的安裝向?qū)Ы缑?,如圖1.9所示?!静襟E2】單擊“下一步”按鈕,進入定制安裝界面,如圖1.10所示??梢詥螕粲蚁路降摹案摹卑粹o,設(shè)置JDK的安裝路徑,否則進入默認(rèn)安裝路徑。1.3.2JDK安裝配置【步驟3】單擊“下一步”按鈕,進入安裝進度界面,如圖1.11所示。【步驟4】JDK安裝進度完成,進入目標(biāo)文件夾安裝對話框,如

15、圖1.12所示??梢詥螕簟案摹卑粹o,選擇JRE的安裝路徑。一般要求JDK和JRE安裝在同一個文件夾內(nèi)。1.3.2JDK安裝配置【步驟5】單擊“下一步”按鈕,進入JRE安裝進度界面,如圖1.13所示。當(dāng)安裝完成以后,進入安裝成功界面,如圖1.14所示。單擊“關(guān)閉”按鈕,完成JDK整個安裝過程。1.3.3JDK目錄JDK安裝完成后,在安裝的位置中可以找到如圖1.15所示的目錄。JDK目錄JDK主要目錄如下: bin:JDK包中命令及工具所在目錄。這是JDK中非常重要的目錄,它包含大量開發(fā)當(dāng)中的常用工具程序,如編譯器、解釋器、打包工具、代碼轉(zhuǎn)換器和相關(guān)調(diào)試工具等。 jre:運行環(huán)境目錄。JDK自己

16、附帶的Java運行環(huán)境。 lib:類庫所在目錄。包含了開發(fā)所需要的類庫(即Java API)和支持文件。 db:附帶數(shù)據(jù)庫目錄。在JDK 6.0以上的版本中附帶Apache Derby數(shù)據(jù)庫,這是一個Java編寫的數(shù)據(jù)庫,支持JDBC 4.0。 include:包含本地代碼的C頭文件的目錄。用于支持java本地接口和Java虛擬機調(diào)試程序接口的本地代碼編譯。 src.zip:源代碼壓縮文件。Java提供的API都可以通過此文件查看其源代碼是如何實現(xiàn)的。1.3.3JDK目錄在JDK的bin目錄下,提供了大量的開發(fā)工具程序,以下是幾個常用的工具: javac: Java語言編譯器??梢詫ava源

17、文件編譯成與平臺無關(guān)的字節(jié)碼文件(.class文件)。 java:Java字節(jié)碼解釋器。將字節(jié)碼文件在不同的平臺中解釋執(zhí)行。 javap:Java字節(jié)碼分解程序??梢圆榭碕ava程序的變量以及方法等信息。 javadoc:文檔生成器??梢詫⒋a中的文檔注釋生成HTML格式的Java API文檔。 javah:JNI編程工具。用于從Java類調(diào)用C+代碼。 appletviewer:小應(yīng)用程序瀏覽工具,用于測試并運行Java小應(yīng)用程序。 jar:打包工具。在Java SE中壓縮包的擴展名為.jar。第4節(jié)part集成開發(fā)環(huán)境 安裝配置好JDK后可以直接使用記事本編寫Java程序,但是,當(dāng)程序復(fù)雜

18、到一定程度、規(guī)模逐漸增大后,使用記事本就遠(yuǎn)遠(yuǎn)滿足不了開發(fā)的需求。一個好的集成開發(fā)環(huán)境(IDE,Integrated Development Environment)可以起到事半功倍的效果。集成開發(fā)環(huán)境具有很多優(yōu)勢:不僅可以檢查代碼的語法,還可以調(diào)試、跟蹤、運行程序;此外,通過菜單、快捷鍵可以自動補全代碼;且在編寫代碼的時候回自動進行編譯;運行Java程序時,只需要單擊運行按鈕即可,大大縮短了開發(fā)時間。 目前,最流行的兩種是Eclipse和NetBeans,為了正當(dāng)“領(lǐng)頭羊”,兩者之間展開了激烈的競爭。這些年來由于Eclipse的開放性、極為高校的GUI、先進的代碼編輯器等特性,在IDE的市場占

19、有率上遠(yuǎn)遠(yuǎn)超越NetBeans。本節(jié)僅介紹Eclipse這一款I(lǐng)DE工具的下載、安裝和使用。集成開發(fā)環(huán)境本節(jié)概述1.4.1Eclipse簡介 Eclipse是一個開放源代碼、可擴展的、跨平臺的集成開發(fā)環(huán)境。Eclipse最初主要用來進行Java語言開發(fā),如今也是一些開發(fā)人員通過插件使其作為其他語言如C+和PHP的開發(fā)工具。Eclipse本身只是一個框架平臺,眾多插件的支持使得Eclipse具有更高的靈活性,這也是其他功能相對固定的IDE工具很難做到的。 Eclipse發(fā)行版本如表1-2所示。Eclipse簡介1.4.2Eclipse下載及安裝1. Eclipse下載進入Eclipse官方網(wǎng)站可

20、以下載最新版本的Eclipse安裝文件。Eclipse官方網(wǎng)站:eclipse下載地址:/downloads/download.php?file=/oomph/epp/photon/R/eclipse-inst-win64.exe&mirror_id=1261Eclipse下載頁面如圖1.16所示。Eclipse下載及安裝1.4.2Eclipse下載及安裝2. Eclipse安裝 Eclipse的安裝一般有兩種方式:一種是在網(wǎng)上下載綠化版的Eclipse開發(fā)工具,不需要安裝,直接解壓即可使用;另一種,是在官網(wǎng)下載需要安裝的Eclipse軟件。我們這里主要介紹第二種安裝方式。下面對Eclipse

21、的安裝分步驟進行詳細(xì)介紹。Eclipse下載及安裝【步驟1】下載完成后解壓下載包,可以看到 Eclipse Installer 安裝器,雙擊它,彈出安裝類型選擇頁面,如圖1.17所示??梢赃x擇各種不同的語言的開發(fā)環(huán)境(包括Java、C/C+、JavaEE、PHP 等)。我們這里選擇“Eclipse IDE for Java Developes”項。1.4.2Eclipse下載及安裝 【步驟2】單擊“next”按鈕,進入安裝路徑選擇界面,如圖1.18所示。可以單擊右側(cè)的文件夾圖標(biāo),進行安裝路徑選擇。 【步驟3】按回車鍵,進入安裝版本選擇界面,如圖1.19所示。我們這里選擇64位的Oxygen(氧

22、氣)版本進行安裝。1.4.2Eclipse下載及安裝 【步驟4】以后依次單擊“next”按鈕,直至安裝完成即可。根據(jù)安裝路徑,打開Eclipse安裝文件夾,其目錄如圖1.20所示。1.4.3Eclipse基本操作1. Eclipse啟動 單擊eclipse.exe啟動開發(fā)環(huán)境,第一次運行Eclipse,啟動向?qū)屇氵x擇Workspace(工作區(qū)),如圖1.21所示。在Workspace中輸入某個路徑,表示接下來的代碼和項目設(shè)置都將保存在該工作目錄下。單擊“Launch”按鈕,進入啟動頁面,如圖1.22所示。Eclipse基本操作1.4.3Eclipse基本操作 啟動成功后,第一次運行會顯示歡

23、迎界面,如圖1.23所示,單擊Welcome標(biāo)簽頁上的關(guān)閉按鈕,關(guān)閉歡迎界面,將顯示Eclipse開發(fā)環(huán)境布局界面,如圖1.24所示。1.4.3Eclipse基本操作開發(fā)環(huán)境分為如下幾個部分: 菜單欄。 工具欄。 IDE的透視圖,用于切換Eclipse不同的視圖外觀,通常根據(jù)開發(fā)項目的需要切換不同的視圖。 項目資源導(dǎo)航,主要有包資源管理器。 代碼編輯區(qū),用于編寫程序代碼。 程序文件分析工具,主要有大綱、任務(wù)列表。 問題列表、文檔注釋、聲明和控制臺窗口。 顯示區(qū)域,主要有編譯問題列表、運行結(jié)果輸出等。1.4.3Eclipse基本操作2. 創(chuàng)建Java項目 打開Eclipse集成開發(fā)工具,選擇Fi

24、leNewJava Project菜單項,如圖1.25所示?;蛑苯釉陧椖抠Y源管理器空白處右擊,在彈出菜單中選擇NewJava Project菜單項。在彈出的創(chuàng)建項目對話框中輸入項目名稱,如圖1.26所示。直接單擊“Finish”按鈕,項目創(chuàng)建成功。1.4.3Eclipse基本操作3. 創(chuàng)建類 在student項目中的src節(jié)點上右擊,在彈出菜單中選擇NewClass菜單項。在彈出的新建類對話框中,如圖1.27所示,輸入包名和類名,選中“public static void main( String args)”復(fù)選框,然后單擊“Finish”按鈕,創(chuàng)建類完成。 新建類后,Eclipse會自動打

25、開新建類的代碼編輯窗口,在main()方法中輸入如下代碼: System.out.println(我是一個好學(xué)生,我要好好學(xué)習(xí)Java!); 單擊工具欄中的保存按鈕,或者按“Ctrl+S”快捷鍵保存代碼。單擊工具欄上的運行按鈕 ,選擇“Run AsStudent”選項,即可運行Student.java程序,并且在控制臺中可以看到輸出結(jié)果如下:我是一個好學(xué)生,我要好好學(xué)習(xí)Java!1.4.3Eclipse基本操作4. Eclipse調(diào)試【步驟1】設(shè)置斷點 單擊需要設(shè)置斷點的程序行左側(cè),在彈出的對話框中選擇“設(shè)置斷點”選項,會出現(xiàn)一個藍色的斷點標(biāo)識,如圖1.28所示。1.4.3Eclipse基本操

26、作【步驟2】調(diào)試程序 單擊工具欄的調(diào)試按鈕 ,或選擇“Debug AsJava Application”選項,如圖1.29所示,調(diào)試Student.java程序。此時彈出一個對話框如圖1.30所示,詢問是否切換到Debug透視圖,單擊“Yes”按鈕,進入程序調(diào)試界面,如圖1.31所。單擊調(diào)試工具欄的 或 按鈕,觀察Variables窗口中的局部變量的變化,以及輸出的變化,對代碼進行調(diào)試并運行。1.4.3Eclipse基本操作5. Eclipse導(dǎo)入 在開發(fā)過程中,經(jīng)常會需要從其他位置復(fù)制已有的項目,這些項目不需要重新創(chuàng)建,可以通過Eclipse的導(dǎo)入功能,將這些項目導(dǎo)入到Eclipse的工作空

27、間。 首先,選擇“FileImport”菜單項,在彈出的對話框中選擇“GeneralExisting Projects into Workspace”選項,如圖1.32所示。1.4.3Eclipse基本操作 單擊“Next”按鈕,彈出導(dǎo)入項目窗口,如圖1.33所示??梢詫?dǎo)入兩種形式的項目: 項目根目錄,即該項目以文件夾形式存放,則單擊“Browse”按鈕,指定其項目的根目錄即可。 項目壓縮存檔文件,即整個項目壓縮成zip文件,則單擊“Browse”按鈕,指定其項目的壓縮存檔文件即可。 最后,單擊“Finish”按鈕,完成項目導(dǎo)入。此時需要導(dǎo)入的項目已經(jīng)引入到Eclipse工作空間中。 注意:能

28、夠向Eclipse中導(dǎo)入的項目必須是使用Eclipse導(dǎo)出的項目。導(dǎo)出項目與導(dǎo)入項目正好相反,選擇“FileExport”菜單項。第5節(jié)partJava應(yīng)用程序 Java程序分為Application程序和Applet程序兩類。Application程序是普通的應(yīng)用程序,其編譯結(jié)果不是通常的exe文件而是class文件。Application程序能夠在任何具有Java解釋器的計算機上運行。Applet程序不是獨立的程序,使用時必須把編譯時生成的class文件嵌入到HTML文件中,借助瀏覽器解釋執(zhí)行。Java應(yīng)用程序本節(jié)概述1.5.1Java語言編寫規(guī)范 在Java語言中,為包、類、接口、變量、

29、常量和方法等取的名字,稱為標(biāo)識符。有關(guān)標(biāo)識符的命名規(guī)則在第二章詳細(xì)介紹,不遵循標(biāo)識符命名規(guī)則會導(dǎo)致編譯錯誤。在Java中,還有一種推薦的編程習(xí)慣,如果不遵守,雖然不會導(dǎo)致編譯錯誤,但是編寫的程序后期維護成本較高,可讀性也較差。一般素質(zhì)良好的程序員,在編寫Java程序時,通常都會遵守如下的編程規(guī)范。Java語言編寫規(guī)范1. 包名包名是全小寫的名詞,具有多個層次結(jié)構(gòu)的包名中間用點號分隔開。例如:com. student或java. sql. jdbc等。2. 類名和接口名類名和接口名通常由多個單詞構(gòu)成,要求每個單詞的首字母都要大寫,其余字母小寫。例如:HelloWorld或StudentInfor

30、mation等。3. 方法名方法名如果有多個單詞組成,則第一個單詞首字母要求小寫,其余每個單詞首字母大寫,其余所有字母都小寫。例如:createBookSaleRecord。4. 變量名和對象名變量名和對象名的編程規(guī)范和方法名相同,只是一般為名詞。例如:name,age等。5. 常量名基本數(shù)據(jù)類型的常量名為全大寫,如果由多個單詞構(gòu)成,可以用下劃線隔開。例如:MAX_VALUE、MIN_AGE等。1.5.2Java注釋 注釋是對程序代碼做出注銷或者解釋說明的作用。在程序編譯時,注釋的內(nèi)容不會被編譯器處理,所以對于編譯和運行的結(jié)果不會有任何影響。但是在復(fù)雜的項目中,注釋往往用來幫助開發(fā)人員閱讀和理

31、解程序,同時也有利于程序修改和調(diào)試。Java注釋 Java語言支持單行注釋、多行注釋和文檔注釋三種方法。 1. 單行注釋 單行注釋使用“/”符合進行標(biāo)記,可放置于代碼后面或單獨成行,標(biāo)記之后的內(nèi)容都被視為注釋。 例如: public static void main(String args) int i = 0; /定義變量i,并賦初值0。 /向控制臺輸出語句 System.out.println(Hello World!); 1.5.2Java注釋2. 多行注釋 多行注釋使用“/*/”進行標(biāo)記,注釋內(nèi)容可以跨越多行,從“/*”開始到“*/”結(jié)束,之間的內(nèi)容都被視為注釋。多行注釋主要用于注釋內(nèi)

32、容較多的文本,如說明文件、接口、方法和相關(guān)功能塊描述,一般放在一個方法或接口的前面,起到解釋說明的作用,也可以根據(jù)需要放在合適的位置。 例如: public static void main(String args) /* System.out.print()輸出內(nèi)容后不換行* System.out.println()輸出內(nèi)容后換行*/System.out.print(輸出內(nèi)容后不換行!);System.out.println(輸出內(nèi)容后換行!); 1.5.2Java注釋3 文檔注釋 文檔注釋使用“/*/”進行標(biāo)記,其注釋的規(guī)則與用途相似于多行注釋。文檔注釋不同于多行注釋的是可以通過“java

33、doc”工具將其注釋的內(nèi)容生成HTML格式Java API文檔。程序的文檔是項目產(chǎn)品的重要組成部分,將注釋抽取出來可以更好地供使用者參閱。因此,在實際應(yīng)用中,文檔注釋應(yīng)用更為廣泛,尤其是對類、接口、構(gòu)造方法、方法的注釋應(yīng)盡量使用文檔注釋。例如: /* * 單位 重慶機電職業(yè)技術(shù)學(xué)院 * 作者 向守超 */ public class HelloWorld public static void main(String args) /向控制臺輸出語句 System.out.println(Hello World!); 1.5.3Java打印輸出 在Java程序中,向控制臺輸出信息是必不可少的。輸出的

34、工作是通過打印語句來完成的。據(jù)不完全統(tǒng)計,打印語句是在代碼中使用頻率最高的語句之一,對于初學(xué)者來說是驗證結(jié)果、測試代碼、記錄系統(tǒng)信息最普遍的方法。 本書介紹兩個Java中最常用的打印方法:System.out.println()和System.out.print(),以便于后續(xù)學(xué)習(xí)中的應(yīng)用,兩者都是向控制臺輸出信息,不同的是System.out.println()方法會在輸出字符串后在輸出回車換行符,而System.out.print()方法則不會輸出回車換行符。Java打印輸出1.5.3Java打印輸出下述代碼示例了分別使用兩種打印方法實現(xiàn)各種數(shù)據(jù)的輸出,代碼如下所示?!敬a1.1】Prin

35、tExample.javapackage com;public class PrintExample public static void main(String args) String s = Hello;char c = c;System.out.print(String is :);System.out.println(s);System.out.print(char is :);System.out.println(c);上述代碼運行結(jié)果如下所示:String is :Hellochar is :c1.5.4Hello World程序編寫Java程序需要注意以下幾點: Java是區(qū)分

36、字母大小寫的編程語言,Java語言的源程序文件是以.java為后綴的。 所有代碼都寫在類體之中,因為Java是純面向?qū)ο蟮木幊陶Z言,一個完整的Java程序,至少需要有一個類(class)。 一個Java文件只能有一個公共類(public),且該公共類的類名與Java文件名必須相同,但一個Java文件可以有多個非公共類。 每個獨立的、可執(zhí)行的Java應(yīng)用程序必須要有main()方法才能運行。main()方法時程序的主方法,是整個程序的入口,運行時執(zhí)行的第一句就是main()方法。Java語法對main()方法有固定的要求,方法名必須是小寫的“main”,且方法必須是公共、靜態(tài)、返回值類型為空的“

37、public static void”類型,且其參數(shù)必須是一個字符串?dāng)?shù)組。Hello World程序1.5.4Hello World程序下面以HelloWorld程序為例,詳細(xì)講解Java程序的基本結(jié)構(gòu)和代碼含義。代碼程序如下所示?!敬a1.2】HelloWorld.java/定義包,指定類存放路徑package com;/import語句,導(dǎo)入Java核心類庫import java.lang.*;/*使用“class”關(guān)鍵字定義一個名稱為“HelloWorld”的類 * 該類的訪問權(quán)限修飾符為public,表示在整個應(yīng)用程序中都可以用訪問該類 * 該公共類的類名必須與源文件的文件名一致 *

38、類的類體是由一對大括號“”括起來的,起到封裝作用 * */public class HelloWorld / 定義程序的主方法main()方法,即程序的入口public static void main(String args) / 向控制臺輸出雙引號內(nèi)的語句,通常一個語句書寫一行, /語句必須以英文格式的分號“;”來結(jié)束System.out.println(Hello World!);本章課后作業(yè)見教材JAVA程序設(shè)計本章學(xué)習(xí)目標(biāo):本章主要學(xué)習(xí)Java語言中的基本數(shù)據(jù)類型、運算符與表達式 掌握J(rèn)ava中的字符集、分隔符、標(biāo)識符、關(guān)鍵字 掌握變量和常量的定義和初始化 掌握基本數(shù)據(jù)類型 掌握J(rèn)a

39、va中數(shù)據(jù)類型的轉(zhuǎn)換、運算符和表達式第二章 數(shù)據(jù)類型與運算符第1節(jié)part字符 字符是各種文字和符號的總稱,包括各國家文字、標(biāo)點符號、圖形符號、數(shù)字等。字符集是多個字符的集合,不同的字符集所包含的字符個數(shù)也不同。字符集種類較多,常見字符集有ASCII字符集、GB2312字符集和Unicode字符集。計算機要準(zhǔn)確處理各種字符集文字,需要進行字符編碼,以便計算機能夠識別和存儲各種文字。 Unicode字符集是由一個名為Unicode Consortium的非盈利機構(gòu)制訂的字符編碼系統(tǒng),支持各種不同語言的書面文本的轉(zhuǎn)換、處理及顯示。Unicode為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼,

40、以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。Unicode支持UTF-8、UTF-16和UTF-32這三種字符編碼方案,這三種方案的區(qū)別如表2-1所示。2.1.1字符集字符集 注意:Java語言中基本所有輸入元素都是采用ASCII字符集編碼,而標(biāo)識符、字符、字符串和注解則采用Unicode字符集編碼。2.1.1字符集 Java中使用多種字符作為分隔符,用于輔助程序編寫、閱讀和理解。這些分隔符可以分為兩類: 空白符:沒有確定意義,但幫助編譯器正確理解源程序,包括空格、回車、換行和制表符(Tab); 普通分隔符:擁有確定含義,常用的普通分隔符如表2- 2所示。2.1.2分隔符分隔符 需要注意的是

41、:任意兩個相鄰的標(biāo)識符之間至少有一個分隔符,便于編譯程序理解;空白符的數(shù)量多少沒有區(qū)別,使用一個和多個空白符實現(xiàn)相同的分隔作用;分隔符不能相互替換,比如該用逗號的地方不能使用空白符。 在各種編程語言中,通常要為程序中處理的各種變量、常量、方法、對象和類等起個名字作為標(biāo)記,以便通過名字進行訪問,這些名字統(tǒng)稱標(biāo)識符。 Java中的標(biāo)識符由字母、數(shù)字、下劃線或美元符組成,且必須以字母、下劃線(_)或美元符($)開頭。 Java中標(biāo)識符的命名規(guī)則如下: 可以包含數(shù)字,但不能以數(shù)字開頭; 除下劃線“_”和“$”符以外,不包含任何其他特殊字符,如空格; 區(qū)分大小寫,例如“abc”和“ABC”是兩個不同的標(biāo)

42、識符; 不能使用Java關(guān)鍵字。 標(biāo)識符可有任意長度。2.1.3標(biāo)識符標(biāo)識符以下是合法標(biāo)識符的示例:varName _varName var_Name $varName _9Name以下是非法標(biāo)識符的示例:Var Name /包含空格9 varName /以數(shù)字開頭a+b /加號“+”不是字母和數(shù)字,屬于特殊字符,不是Java標(biāo)識符組成元素 關(guān)鍵字又叫保留字,是編程語言中事先定義的、有特別意義的標(biāo)識符。關(guān)鍵字對編譯器具有特殊的意義,用于表示一種數(shù)據(jù)類型或程序的結(jié)構(gòu)等,關(guān)鍵字不能用于變量名、方法名、類名以及包名。Java中常用的關(guān)鍵字如表2-3所示。2.1.4關(guān)鍵字關(guān)鍵字第2節(jié)part變量和常量

43、 變量是數(shù)據(jù)的基本存儲形式,因Java是一種強類型的語言,所以每個變量都必須先聲明后再使用。變量的定義包括變量類型和變量名,其定義的基本格式如下: 數(shù)據(jù)類型 變量名 = 初始值; 例如:定義整型變量 int a = 1; / 聲明變量并賦初始值 其中,int是整型數(shù)據(jù)類型;a是變量名稱;= 是賦值運算符;1 是賦給變量的初始值。 變量的聲明與賦值也可以分開, 例如: int a; /聲明變量 a=1; /給變量賦值 聲明變量時,可以幾個同一數(shù)據(jù)類型的變量同時聲明,變量之間使用逗號“,”隔開, 例如: int i , j , k; 2.2.1變量變量 常量是指一旦賦值之后其值不能再改變的變量。在

44、Java語言中,使用final關(guān)鍵字來定義常量,其語法格式如下: final 數(shù)據(jù)類型 變量名 = 初始值; 例如:定義常量 final double PI=3.1416; /聲明了一個double類型的常量,初始化值為3.1416 final boolean IS_MAN=true; /聲明了一個boolean類型的常量,初始化值為true 需要注意的是:在開發(fā)過程中常量名習(xí)慣采用全部大寫字母,如果名稱中含有多個單詞,則單詞之間以“_”分隔。此外常量在定義時,需要對常量進行初始化,初始化后,在應(yīng)用程序中就無法再對該常量賦值。2.2.2常量常量第3節(jié)part數(shù)據(jù)類型 定義變量或常量時需要使用數(shù)

45、據(jù)類型,Java的數(shù)據(jù)類型分為兩大類:基本類型和引用類型。 基本類型是一個單純的數(shù)據(jù)類型,表示一個具體的數(shù)字、字符或布爾值?;绢愋痛娣旁趦?nèi)存的“?!敝?,可以快速從棧中訪問這些數(shù)據(jù)。 引用類型是一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),是指向存儲在內(nèi)存的“堆”中數(shù)據(jù)的指針或引用(地址)。引用類型包括類、接口、數(shù)組和字符串等,由于要在運行時動態(tài)分配內(nèi)存,所以其存取速度較慢。數(shù)據(jù)類型本節(jié)概述Java的基本數(shù)據(jù)類型主要包括如下四類: 整數(shù)類型:byte、short、int、long 浮點類型:float、double 字符類型:char 布爾類型:boolean2.3.1基本數(shù)據(jù)類型基本數(shù)據(jù)類型Java各種基本類型的大小

46、和取值范圍如表2-4所示。1. 整型類型整數(shù)類型根據(jù)大小分為byte(字節(jié)型)、short(短整型)、int(整型)和long(長整型)四種,其中int是最常用的整數(shù)類型,因此通常情況下,直接給出一個整數(shù)值默認(rèn)就是int類型。其中,在定義long類型的變量時,其常量后面需要用后綴l或L。例如:聲明整型類型變量byte b = 51; /聲明字節(jié)型變量short s = 34; /聲明短整型變量int i = 100; /聲明整型變量long m = 12l; /聲明長整型變量long n = 23L; /聲明長整型變量Java中整數(shù)值有4種表示方式:2.3.1基本數(shù)據(jù)類型 二進制:每個數(shù)據(jù)位上

47、的值是0或1,二進制是整數(shù)在內(nèi)存中的真實存在形式,從Java 7開始新增了對二進制整數(shù)的支持,二進制的整數(shù)以“0b”或“0B”開頭。 八進制:每個數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,其實八進制是由3位二進制數(shù)組成的,程序中八進制的整數(shù)以“0”開頭。 十進制:每個數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,8,9,十進制是生活中常用的數(shù)值表現(xiàn)形式,因此在程序中如無特殊指明,數(shù)值默認(rèn)為十進制。 十六進制:每個數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,與八進制類似,十六進制是由4位二進制數(shù)組成的,程序中十六進制的整數(shù)以“0 x”或“0X”開頭。下述案例

48、示例了整數(shù)類型的不同表示形式,代碼如下所示?!敬a2.1】IntValueExample.javapackage com;public class IntValueExample public static void main(String args) int a = 0b1001; / 二進制數(shù) System.out.println(二進制數(shù)0b1001的值是: + a); int b = 071; / 八進制數(shù) System.out.println(八進制數(shù)071的值是: + b); int c = 19; / 十進制數(shù) System.out.println(十進制數(shù)19的值是: + c)

49、; / Integer.toBinaryString()方法將一個整數(shù)以二進制形式輸出 System.out.println(19的二進制表示是: + Integer.toBinaryString(c); int d = 0 xFE; / 十六進制數(shù) System.out.println(十六進制數(shù)0 xFE的值是: + d); System.out.println(十六進制數(shù)0 xFE的二進制表示是+Integer.toBinaryString(d); int e = 19; / 負(fù)數(shù)以補碼形式存儲 System.out.println(19的二進制表示是: + Integer.toBina

50、ryString(e); 2.3.1基本數(shù)據(jù)類型 上述代碼中,Integer是int基本數(shù)據(jù)類型對應(yīng)的封裝類,該類提供一些對整數(shù)的一些常用靜態(tài)方法,其中Integer.toBinaryString( )方法可以將一個整數(shù)以二進制形式輸出。 2.3.1基本數(shù)據(jù)類型該程序運行結(jié)果如下所示: 二進制數(shù)0b1001的值是:9 八進制數(shù)071的值是:57 十進制數(shù)19的值是:19 19的二進制表示是:10011 十六進制數(shù)0 xFE的值是:254 十六進制數(shù)0 xFE的二進制表示是11111110 19的二進制表示是:100112. 浮點類型 浮點數(shù)據(jù)類型有單精度(float)和雙精度(double)兩

51、種,主要用來存儲小數(shù)數(shù)值,也可以用來存儲范圍更大的整數(shù)。 單精度浮點型變量使用關(guān)鍵字float來聲明,常量后面必須要有后綴f或F。 例如:聲明單精度浮點型變量 float height = 1.78f; / 聲明變量height為單精度浮點型,并賦初始值為1.78 float weight = 56.8F; /聲明變量weight為單精度浮點型,并賦初始值為56.8 float變量在存儲float類型數(shù)據(jù)時保留8位有效數(shù)字,例如,如果將常量12345.123456789f賦值給float類型變量x,則x實際輸出值為12345.123。對于float類型變量,分配4個字節(jié)內(nèi)存,占32位,floa

52、t類型變量的取值范圍為1.4E-453.4028235E38和-3.4028235E38-1.4E-45。 雙精度浮點型變量使用關(guān)鍵字double來聲明,常量后面可以有后綴d或D,也可以省略,浮點類型默認(rèn)為double型。 例如:聲明雙精度浮點型變量 double a = 1.24d; double b = 4.87D; double c = 3.14;2.3.1基本數(shù)據(jù)類型 double變量在存儲double類型數(shù)據(jù)時保留16位有效數(shù)字,分配8個字節(jié)內(nèi)存,占64位,double類型變量的取值范圍為4.9E-3241.7976931348623157E308和-1.79769313486231

53、57E308-4.9E-324。2.3.1基本數(shù)據(jù)類型下述案例示例了浮點類型變量保留的有效位數(shù),代碼如下所示?!敬a2.2】FloatExample.javapackage com;public class FloatExample public static void main(String args) float x=12345.123456789f;System.out.println(x=+x);double y=12345.12345678912345678d;System.out.println(y=+y); 程序運行結(jié)果如下:x=12345.123y=12345.12345678

54、91243. 字符型 Java語言中字符型char是采用16位的Unicode字符集作為編碼方式,因此支持世界上各種語言的字符。char通常用于表示單個字符,字符值必須使用單引號()括起來。 例如: char =A; /聲明變量c為字符型,并賦初值為A字符型char的值有以下三種表示形式: 通過單個字符來指定字符型值,例如:A、8、Z等; 通過轉(zhuǎn)義字符來表示特殊字符型值,例如:n、t等; 直接使用Unicode值來表示字符型值,格式是uXXXX,其中XXXX代表一個十六進制的整數(shù),例如:u00FF、u0056等。2.3.1基本數(shù)據(jù)類型例如:使用轉(zhuǎn)義字符賦值char a=; /變量a表示一個單引

55、號 char b=; /變量b表示一個反斜杠4. 布爾類型 布爾類型又稱邏輯類型,使用關(guān)鍵字boolean來聲明,只有true和false兩種值。布爾類型的默認(rèn)值是false,即如果定義一個布爾變量但沒有賦初始值,默認(rèn)的布爾變量值是false。布爾類型通常用于邏輯判斷,尤其多用在程序的流程控制中。 例如:聲明一個boolean類型變量 boolean male = true; /聲明變量male為布爾類型,并賦初始值為true2.3.1基本數(shù)據(jù)類型2.3.1基本數(shù)據(jù)類型程序運行結(jié)果如下:isA=falseisB=trueisB is true下述案例示例了布爾數(shù)據(jù)類型的應(yīng)用,代碼如下所示?!敬?/p>

56、碼2.3】BooleanExample.javapackage com;public class BooleanExample static boolean isA; / 定義一個布爾值,使用默認(rèn)值 static boolean isB = true; / 定義一個布爾值,賦初始值為true public static void main(String args) System.out.println(isA= + isA); / 輸出不布爾值isA的結(jié)果System.out.println(isB= + isB); / 輸出不布爾值isB的結(jié)果/ 輸出isA為true則輸出isA is tr

57、ueif (isA = true) System.out.println(isA is true);/ 輸出isB為true則輸出isB is trueif (isB) System.out.println(isB is true); 2.3.2引用數(shù)據(jù)類型 引用類型變量中的值是指向內(nèi)存“堆”中的指針,即該變量所表示數(shù)據(jù)的地址。 Java語 言中通常有5種引用類型: 數(shù)組:具有相同數(shù)據(jù)類型的變量的集合。 類(class):變量和方法的集合。 接口(interface):一系列方法的聲明,方法特征的集合。 枚舉(enum):一種獨特的值類型,用于聲明一組命名的常數(shù)。 空類型(null type)

58、:空引用,即值為null的類型??疹愋蜎]有名稱,不能聲明一個null類型的變量,null是空類型的唯一值??找弥荒鼙晦D(zhuǎn)換成引用類型,不能轉(zhuǎn)換成基本類型,因此不要把一個null值賦給基本數(shù)據(jù)類型的變量。 引用數(shù)據(jù)類型2.3.3數(shù)據(jù)類型轉(zhuǎn)換 在Java程序中,不同的基本類型的值經(jīng)常需要進行相互轉(zhuǎn)換。Java語言提供7個基本數(shù)據(jù)類型間的相互轉(zhuǎn)換,轉(zhuǎn)換的方式有兩種:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。 1. 自動類型轉(zhuǎn)換 自動類型轉(zhuǎn)換是將某種基本類型變量的值直接賦值給另一種基本類型變量。當(dāng)把一個數(shù)值范圍小的變量直接賦值給一個數(shù)值范圍大的變量時,系統(tǒng)將進行自動類型轉(zhuǎn)換,否則就需要強制類型轉(zhuǎn)換。 Java語言中

59、7個基本數(shù)據(jù)類型間的自動類型轉(zhuǎn)換如圖2.1所示。在圖2.1中,順著箭頭方向可以進行自動類型轉(zhuǎn)換。其中,實線箭頭表示無精度損失的轉(zhuǎn)換,而虛線箭頭則表示在轉(zhuǎn)換過程中可能丟失精度,即會保留正確的量級,但精度上會有一些損失(小數(shù)點后所保留的位數(shù))。數(shù)據(jù)類型轉(zhuǎn)換2.3.3數(shù)據(jù)類型轉(zhuǎn)換2. 強制類型轉(zhuǎn)換 當(dāng)把一個數(shù)值范圍大的變量賦值給一個數(shù)值范圍小的變量時,即沿圖2.1中箭頭反方向賦值時,則必須使用強制類型轉(zhuǎn)換。 強制類型轉(zhuǎn)換的基本格式如下: 數(shù)據(jù)類型 變量1 = (數(shù)據(jù)類型)變量2; 例如: int a = 56; char c = (char) a; / 把整型變量a強制類型轉(zhuǎn)換為字符型2.3.3數(shù)據(jù)

60、類型轉(zhuǎn)換下述案例示例了自動類型轉(zhuǎn)換與強制類型轉(zhuǎn)換的應(yīng)用,代碼如下所示。【代碼2.4】TypeChangeExample.javapackage com;public class TypeChangeExample public static void main(String args) byte b = 8;char c = B;int a = 12;long l = 789L;float f = 3.14f;double d = 5.3d;int i1 = a + c; / 字符型變量c自動轉(zhuǎn)換為整型,參加加法運算System.out.println(i1= + i1);long l1 =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論