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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、JAVA程序設計本章學習目標: 熟悉Java語言的產生、特點以及編寫規范 掌握Java開發環境和開發工具的使用 掌握編寫簡單的Java程序 掌握創建、編譯和運行Java程序的基本步驟第一章 Java概述第1節partJava簡介 Java是一種可用于編寫跨平臺應用軟件的面向對象程序設計語言,也是Java SE(標準版)、Java EE(企業版)和Java ME(微型版)三種平臺的總稱。由于Java具有“一次編寫,多處應用(Write Once,Run Anywhere)”的特點,使其廣泛應用于個人PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網等不同的媒介。Java具有卓越的通用性

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

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

4、性健壯、安全性高性能性簡單性面向對象動態性多線程支持分布式網絡應用第2節partJava體系(Java Enterprise Edition,Java企業版)Java EE是企業級解決方案,支持開發、部署和管理等相關復雜問題的體系結構,主要用于分布式系統的開發、構建企業級的服務器應用,例如,電子商務網站、ERP系統等。Java EE在SE基礎上定義了一系列的服務、API和協議等,如Servlet、JSP、RMI、EJB、Java Mail、JTA等。Java EE(Java Micro Edition,Java微型版)Java ME是各版本中最小的,是在SE基礎上進行裁剪和高度優化,目的是在小

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

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

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

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

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

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

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

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

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

14、版本,即jdk-8u171-windows-x64.exe。由于不同版本的下載地址會經常發生變化,最有效的方法是訪問官方網站,通過導航找到下載頁面;如果是32位操作系統,則下載對應的“x86”版本。1.3.2JDK安裝配置2. 安裝JDK【步驟1】運行JDK的安裝文件,進入JDK的安裝向導界面,如圖1.9所示。【步驟2】單擊“下一步”按鈕,進入定制安裝界面,如圖1.10所示。可以單擊右下方的“更改”按鈕,設置JDK的安裝路徑,否則進入默認安裝路徑。1.3.2JDK安裝配置【步驟3】單擊“下一步”按鈕,進入安裝進度界面,如圖1.11所示。【步驟4】JDK安裝進度完成,進入目標文件夾安裝對話框,如

15、圖1.12所示。可以單擊“更改”按鈕,選擇JRE的安裝路徑。一般要求JDK和JRE安裝在同一個文件夾內。1.3.2JDK安裝配置【步驟5】單擊“下一步”按鈕,進入JRE安裝進度界面,如圖1.13所示。當安裝完成以后,進入安裝成功界面,如圖1.14所示。單擊“關閉”按鈕,完成JDK整個安裝過程。1.3.3JDK目錄JDK安裝完成后,在安裝的位置中可以找到如圖1.15所示的目錄。JDK目錄JDK主要目錄如下: bin:JDK包中命令及工具所在目錄。這是JDK中非常重要的目錄,它包含大量開發當中的常用工具程序,如編譯器、解釋器、打包工具、代碼轉換器和相關調試工具等。 jre:運行環境目錄。JDK自己

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

17、文件編譯成與平臺無關的字節碼文件(.class文件)。 java:Java字節碼解釋器。將字節碼文件在不同的平臺中解釋執行。 javap:Java字節碼分解程序。可以查看Java程序的變量以及方法等信息。 javadoc:文檔生成器。可以將代碼中的文檔注釋生成HTML格式的Java API文檔。 javah:JNI編程工具。用于從Java類調用C+代碼。 appletviewer:小應用程序瀏覽工具,用于測試并運行Java小應用程序。 jar:打包工具。在Java SE中壓縮包的擴展名為.jar。第4節part集成開發環境 安裝配置好JDK后可以直接使用記事本編寫Java程序,但是,當程序復雜

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

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

20、以下載最新版本的Eclipse安裝文件。Eclipse官方網站: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的安裝一般有兩種方式:一種是在網上下載綠化版的Eclipse開發工具,不需要安裝,直接解壓即可使用;另一種,是在官網下載需要安裝的Eclipse軟件。我們這里主要介紹第二種安裝方式。下面對Eclipse

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

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

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

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

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

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

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

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

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

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

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

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

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

34、工作是通過打印語句來完成的。據不完全統計,打印語句是在代碼中使用頻率最高的語句之一,對于初學者來說是驗證結果、測試代碼、記錄系統信息最普遍的方法。 本書介紹兩個Java中最常用的打印方法:System.out.println()和System.out.print(),以便于后續學習中的應用,兩者都是向控制臺輸出信息,不同的是System.out.println()方法會在輸出字符串后在輸出回車換行符,而System.out.print()方法則不會輸出回車換行符。Java打印輸出1.5.3Java打印輸出下述代碼示例了分別使用兩種打印方法實現各種數據的輸出,代碼如下所示。【代碼1.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);上述代碼運行結果如下所示:String is :Hellochar is :c1.5.4Hello World程序編寫Java程序需要注意以下幾點: Java是區分

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

37、public static void”類型,且其參數必須是一個字符串數組。Hello World程序1.5.4Hello World程序下面以HelloWorld程序為例,詳細講解Java程序的基本結構和代碼含義。代碼程序如下所示。【代碼1.2】HelloWorld.java/定義包,指定類存放路徑package com;/import語句,導入Java核心類庫import java.lang.*;/*使用“class”關鍵字定義一個名稱為“HelloWorld”的類 * 該類的訪問權限修飾符為public,表示在整個應用程序中都可以用訪問該類 * 該公共類的類名必須與源文件的文件名一致 *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

53、57E308-4.9E-324。2.3.1基本數據類型下述案例示例了浮點類型變量保留的有效位數,代碼如下所示。【代碼2.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); 程序運行結果如下:x=12345.123y=12345.12345678

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

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

56、碼2.3】BooleanExample.javapackage com;public class BooleanExample static boolean isA; / 定義一個布爾值,使用默認值 static boolean isB = true; / 定義一個布爾值,賦初始值為true public static void main(String args) System.out.println(isA= + isA); / 輸出不布爾值isA的結果System.out.println(isB= + isB); / 輸出不布爾值isB的結果/ 輸出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引用數據類型 引用類型變量中的值是指向內存“堆”中的指針,即該變量所表示數據的地址。 Java語 言中通常有5種引用類型: 數組:具有相同數據類型的變量的集合。 類(class):變量和方法的集合。 接口(interface):一系列方法的聲明,方法特征的集合。 枚舉(enum):一種獨特的值類型,用于聲明一組命名的常數。 空類型(null type)

58、:空引用,即值為null的類型。空類型沒有名稱,不能聲明一個null類型的變量,null是空類型的唯一值。空引用只能被轉換成引用類型,不能轉換成基本類型,因此不要把一個null值賦給基本數據類型的變量。 引用數據類型2.3.3數據類型轉換 在Java程序中,不同的基本類型的值經常需要進行相互轉換。Java語言提供7個基本數據類型間的相互轉換,轉換的方式有兩種:自動類型轉換和強制類型轉換。 1. 自動類型轉換 自動類型轉換是將某種基本類型變量的值直接賦值給另一種基本類型變量。當把一個數值范圍小的變量直接賦值給一個數值范圍大的變量時,系統將進行自動類型轉換,否則就需要強制類型轉換。 Java語言中

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

60、類型轉換下述案例示例了自動類型轉換與強制類型轉換的應用,代碼如下所示。【代碼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自動轉換為整型,參加加法運算System.out.println(i1= + i1);long l1 =

溫馨提示

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

評論

0/150

提交評論