版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.2Java語(yǔ)言的特點(diǎn)1.1Java語(yǔ)言的誕生與發(fā)展1.3Java程序運(yùn)行環(huán)境配置與使用1.5Java程序的類型1.4Java程序的類型 目 錄 1996年Java1.0第一次發(fā)布就引起人們的極大興趣,它是一種應(yīng)用于分布式網(wǎng)絡(luò)環(huán)境中的程序設(shè)計(jì)語(yǔ)言,由Sun公司開發(fā)的。在推出JDK1.0后,Sun在1997年初發(fā)布了JDK1.1。其相對(duì)于JDK1.0最大的改進(jìn)就是為JVM增加JIT編譯器。在1998年12月Sun發(fā)布新的版本JDK1.2,標(biāo)志著Java進(jìn)入Java2時(shí)代。2000年5月Sun對(duì)JDK1.2進(jìn)行升級(jí),推出JDK1.3,增加DNS及JNI的支持,使得Web容器得到廣泛的應(yīng)用。Sun
2、在2002年2月發(fā)布JDK最為成熟的版本:JDK1.4。在性能上獲得極大的提高,已經(jīng)可以使用Java實(shí)現(xiàn)大多數(shù)應(yīng)用了。2004年10月Sun發(fā)布了JDK1.5后改名為J2se5.0,Sun將版本號(hào)1.5改為5.0。2007年Sun推出J2se 6.0正式版,在性能、易用性方面得到極大提高,在腳本和API上全新的支持。本書會(huì)詳細(xì)介紹JDK 1.8,即J2se 8.0。1.2.1 簡(jiǎn)單性1.2.3 可移植性1.2.5 虛擬機(jī)JVM1.2.7 動(dòng)態(tài)性1.2.2 面向?qū)ο?.2.4 安全性1.2.6多線程1.2.8 垃圾回收機(jī)制訪問網(wǎng)址http:/www.O/technetwork/Java/Java
3、se/DownloaDs/inDex.html下載最新版本的JDK。1.3.1安裝Java開發(fā)環(huán)境1.下載JDK單擊JDK DOWNLOAD按鈕后進(jìn)入選擇頁(yè)面。在下載窗口中,選擇對(duì)應(yīng)的操作系統(tǒng)版本,直接單擊相應(yīng)版本的DownloaD鏈接就可以下載。這里下載的是WinDows 64位版本的JDK安裝文件。下載完畢后可以看到一個(gè)名為JDK8u40-WinDows-i586.exe文件。1.3.1安裝Java開發(fā)環(huán)境1.下載JDK在本地磁盤找到下載的安裝文件,具體安裝步驟如下:(1)雙擊打開JDK-8u40-WinDows-i586.exe文件,打開“許可協(xié)議”對(duì)話框,單擊“接受”按鈕,打開“定制安
4、裝”對(duì)話框。(2)根據(jù)自己的需要,更改安裝路徑和組件,此處演示將JDK安裝到D:Java JDK 1.8.0_05目錄下,并安裝所有的組件,如圖所示。(3)設(shè)置完成后,單擊“下一步”按鈕開始進(jìn)行安裝。()JDK類庫(kù)安裝完成后,會(huì)提示安裝JRE運(yùn)行環(huán)境。用戶可以根據(jù)自己的需要選擇安裝的路徑。1.3.1安裝Java開發(fā)環(huán)境2.安裝JDK單擊“下一步”按鈕,開始安裝JRE,設(shè)置安裝目錄為D:JavaJRE8。1.3.1安裝Java開發(fā)環(huán)境2.安裝JDK(5)安裝成功后顯示如圖所示對(duì)話框。單擊“關(guān)閉”按鈕,結(jié)束安裝過程。1.3.1安裝Java開發(fā)環(huán)境2.安裝JDK在學(xué)習(xí)Java的過程中,需要經(jīng)常查看J
5、ava源文件,當(dāng)然也會(huì)頻繁地使用類庫(kù)文檔。JDK安裝成功后,打開安裝目錄。1.3.1安裝Java開發(fā)環(huán)境3.了解Java安裝目錄在安裝好JDK之后,還需要進(jìn)行一些配置才能繼續(xù)后面的應(yīng)用程序開發(fā)。具體配置步驟如下:(1)在WinDows桌面上,右擊“我的電腦”圖標(biāo),從彈出的菜單中選擇“屬性”命令,彈出“系統(tǒng)屬性”對(duì)話框。(2)在“系統(tǒng)屬性”對(duì)話框中,選擇“高級(jí)”選項(xiàng)卡,單擊“環(huán)境變量”按鈕,彈出“環(huán)境變量”對(duì)話框。1.3.2 配置Java環(huán)境變量(3)在“環(huán)境變量”對(duì)話框的“系統(tǒng)變量”選項(xiàng)區(qū)域中,選中變量path,單擊“編輯”按鈕,在彈出的“編輯系統(tǒng)變量”對(duì)話框中,加入“D:JavaJDK1.8
6、.005bin;”(即JDKbin目錄所在路徑,注意路徑后需要加“;”)。()按照同樣的方式編輯系統(tǒng)變量,變量值為:1.3.2 配置Java環(huán)境變量(5)這樣就完成了JDK在WinDowsxP/2000/2003操作系統(tǒng)上的安裝與配置。path變量必須要進(jìn)行配置。classpath環(huán)境變量一般情況下不需要設(shè)置,只有在計(jì)算機(jī)上安裝了其他的Java開發(fā)工具時(shí),才需要配置。為了檢查JDK是否配置成功,可以打開命令提示符窗口,輸入“Javaversion”命令。如果配置成功,會(huì)出現(xiàn)當(dāng)前JDK的版本號(hào)。注意:這是三個(gè)參數(shù),第一個(gè)參數(shù)為“.”,參數(shù)間用分號(hào)間隔。1.3.3 使用命令行工具在使用命令行工具之
7、前,讀者必須先配置好環(huán)境變量。下面向讀者演示如何編寫第一個(gè)Java應(yīng)用程序。打開記事本,在“D:目錄”下創(chuàng)建“HelloWorld.Java”文件,其代碼如下:publicclassHelloWorldpublic static void main(Stringargs)System.out.println(“歡迎來到Java世界.”);1.3.3 使用命令行工具首先選擇“開始”“運(yùn)行”命令,輸入cmd命令,切換路徑至“D:”;然后輸入“JavacHelloWorld.Java”,編譯程序,編譯成功后無結(jié)果輸出;接著輸入“JavaHelloWorld”,運(yùn)行程序,輸出結(jié)果如圖所示。祝賀你,已經(jīng)
8、成功地編譯并運(yùn)行了自己的第一個(gè)Java程序。1.3.4使用集成開發(fā)環(huán)境Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。它專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái),主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成。.Eclipse概述1.3.4使用集成開發(fā)環(huán)境Eclipse是一個(gè)開放源代碼的項(xiàng)目,可以到其官方網(wǎng)站www.E上免費(fèi)下載Eclipse的最新版本。本書所使用的Eclipse為WinDows平臺(tái)下的Eclipse3.5版本。安裝Eclipse
9、的步驟非常簡(jiǎn)單,只需將下載的壓縮包按原路徑直接解壓即可。如果有新的版本,需要先刪除舊的版本,再重新安裝,不能直接解壓到原有的路徑覆蓋舊版本。解壓后,可以到相應(yīng)的安裝路徑下找到“Eclipse.exe”文件,雙擊運(yùn)行,啟動(dòng)Eclipse,會(huì)出現(xiàn)如圖所示界面。2.Eclipse的獲取與安裝隨后出現(xiàn)一個(gè)如圖所示的選擇工作區(qū)路徑對(duì)話框。Eclipse會(huì)將所有文件存放在工作區(qū)指定的路徑下:1.3.4使用集成開發(fā)環(huán)境2.Eclipse的獲取與安裝確定工作區(qū)路徑后單擊“OK”按鈕,打開如圖所示的歡迎界面。如果未安裝JDK就啟動(dòng)Eclipse,系統(tǒng)會(huì)報(bào)告相應(yīng)的錯(cuò)誤信息,提示用戶先安裝JDK,正確配置后再重新啟
10、動(dòng)。在Eclipse界面的菜單欄上,選擇“Help”“Software updates”“Find and Install”選項(xiàng)。讀者可以按要求執(zhí)行相應(yīng)的操作來實(shí)現(xiàn)Eclipse的更新。1.3.4使用集成開發(fā)環(huán)境2.Eclipse的獲取與安裝使用Eclipse開發(fā)Java程序非常簡(jiǎn)單。首先創(chuàng)建相應(yīng)的Java項(xiàng)目,然后創(chuàng)建Java源文件即可。下面演示創(chuàng)建一個(gè)Java項(xiàng)目,在里面創(chuàng)建一個(gè)類,輸出“使用Eclipse開發(fā)Java程序”字符串。選擇“File”“new”“JavaProject”命令,彈出如圖所示的窗口。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序在“Projectna
11、me”文本框中輸入項(xiàng)目名稱“HelloWorld”。窗口下面的信息主要是用來顯示項(xiàng)目的路徑。使用的JRE環(huán)境以及項(xiàng)目布局,采用默認(rèn)選項(xiàng)即可。輸入項(xiàng)目名稱后單擊“Next”按鈕,顯示如圖所示窗口。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序在該窗口中,可以對(duì)Java項(xiàng)目進(jìn)行設(shè)置。如設(shè)置該項(xiàng)目需要添加的項(xiàng)目、需要額外引入的類庫(kù)文件等。直接單擊“Finish”按鈕,Eclipse就會(huì)自動(dòng)創(chuàng)建一個(gè)HelloWorld項(xiàng)目,如圖所示。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序在該窗口中,可以對(duì)Java項(xiàng)目進(jìn)行設(shè)置。如設(shè)置該項(xiàng)目需要添加的項(xiàng)目、需要額外引入的類庫(kù)文件等。直
12、接單擊“Finish”按鈕,Eclipse就會(huì)自動(dòng)創(chuàng)建一個(gè)HelloWorld項(xiàng)目,如圖所示。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序項(xiàng)目創(chuàng)建完成后,就可以直接在該項(xiàng)目中創(chuàng)建文件。選擇“File”“new”“class”命令,或者右擊“HelloWorld”,在彈出的菜單中選擇“new”“class”選項(xiàng),彈出如圖所示的窗口。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序在該窗口中的“Package”文本框中,輸入該類所在包的名稱。該名稱一般為小寫字母,如果輸入的是大寫字母,或沒有輸入,就會(huì)彈出提示消息。在“name”文本框中輸入要?jiǎng)?chuàng)建的類的名稱。該名稱第一個(gè)
13、字母必須是大寫。配置包名與類名后,單擊“Finish”按鈕,彈出如圖所示窗口。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序現(xiàn)在,可以在Eclipse平臺(tái)上編輯Java程序。在輸入程序代碼時(shí)我們注意到,Eclipse編輯器提供了一些特性,包括語(yǔ)法檢查和代碼自動(dòng)提示功能。編輯完成后,結(jié)果如圖所示。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序編輯完成后,運(yùn)行該程序。單擊Eclipse工具欄上的“c”圖標(biāo),會(huì)在Eclipse控制臺(tái)顯示程序結(jié)果,如圖所示。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序在Java應(yīng)用程序中,經(jīng)??梢钥匆姡⊿tringargs)
14、方法中帶有參數(shù),例如:publicclasstestpublicstaticvoidmain(Stringargs)System.out.println(args0args);這里的參數(shù)args是一維字符串?dāng)?shù)組(相關(guān)內(nèi)容會(huì)在后面章節(jié)涉及),執(zhí)行方式有兩種:()命令行環(huán)境下,命令內(nèi)容為:JavatestHello,World1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序(2)在Eclipse集成開發(fā)環(huán)境下,通過右擊程序,選擇“Run As”“RunConfigurations”選項(xiàng),通過Run/Open Run Dialog/(x)Arguments來設(shè)置參數(shù),注意一個(gè)參數(shù)要占一行
15、位置。如圖所示。1.3.4使用集成開發(fā)環(huán)境3.Eclipse開發(fā)Java程序上述兩種執(zhí)行方式輸出的效果均為“HelloWorld”。Java應(yīng)用程序中一定包含main( )方法,它是程序的入口,由Java解釋器加載、執(zhí)行。前面介紹的“Hello World.Java”就屬于這種類型。為加深讀者的印象,這里再給出一個(gè)計(jì)算平方的應(yīng)用程序:import javax.swing.JOptionPane;/導(dǎo)入所需要的類publicclassSquareDEmo/定義主類publicstaticvoidmain(Stringargs)/建立輸入對(duì)話框來輸入數(shù)據(jù)(字符串)StringJOptionPane
16、.D(請(qǐng)輸入一個(gè)數(shù):);DD D.seD();/將數(shù)據(jù)(字符串)轉(zhuǎn)換為數(shù)值型DDD;/計(jì)算結(jié)果/創(chuàng)建消息對(duì)話框來輸出結(jié)果JOptionPane.D(,的平方是:);程序運(yùn)行結(jié)果如圖所示。從第2行代碼可知,上述程序是一個(gè)類文件,Java程序就是由一個(gè)或多個(gè)類組成的。“class”是類關(guān)鍵字,“SquareDEmo”是類的名稱,類名首字母通常要大寫。有關(guān)命名規(guī)則將在第2章介紹。“public”的意思是“公共的”,這表明其所修飾的類或方法可以在外部直接調(diào)用。類體用一對(duì)大括號(hào)“”括住,在其中可以定義多個(gè)屬性和方法。類的方法要有名字并帶有圓括號(hào)“()”,“()”內(nèi)可以包括若干參數(shù),方法體也是用“”括住,
17、方法名前要指定方法執(zhí)行后數(shù)據(jù)的返回類型、訪問權(quán)限等修飾符,類的功能是通過它的眾多方法來實(shí)現(xiàn)的。通常,類的方法名、參數(shù)、返回值類型等是由用戶根據(jù)需要來決定的。但在主類(即具有public權(quán)限的類)中,有一個(gè)方法比較特殊,那就是“main( )”,它是應(yīng)用程序入口,理所當(dāng)然要對(duì)其書寫格式進(jìn)行規(guī)定:名稱固定為“”(注:Java是區(qū)分大小寫的),參數(shù)為“String”(字符串)數(shù)組(用“”標(biāo)識(shí)),返回值類型為“void”(無返回值),訪問權(quán)限為“public”(公共的),用“c”(靜態(tài))修飾說明該方法是屬于類所有而不依賴于具體對(duì)象。一個(gè)Java程序可以包含多個(gè)類,但是只允許一個(gè)public類(即主類)
18、存在,這個(gè)程序所對(duì)應(yīng)的主文件名必須與主類名相同(包括大小寫),擴(kuò)展名為Java。所以,上述程序必須以SquareDEmo.Java命名,否則編譯時(shí)出錯(cuò),無法正常運(yùn)行。Java語(yǔ)言提供了一個(gè)功能強(qiáng)大的類庫(kù)供編程人員使用,為了讓程序員熟悉某個(gè)類或接口的內(nèi)容,可以查看JavaAPI(Application Programming Interface,應(yīng)用程序編程接口)文檔,相當(dāng)于“字典”。JavaAPI文檔按包組織,包括:類層次描述、類功能描述和字段、構(gòu)造方法、方法等的摘要及詳細(xì)信息等內(nèi)容,通過鏈接可以快速查找到相關(guān)信息。可以從Oracle的官網(wǎng)下載API文檔,下載網(wǎng)址為:http:/Docs.O/
19、Javase/8/Docs/API/。界面如圖所示。Java語(yǔ)言從誕生到現(xiàn)在近二十年時(shí)間,隨著Internet的迅猛發(fā)展,Java已成為當(dāng)今軟件開發(fā)的主流語(yǔ)言之一,JDK從.0發(fā)展到了8.0(也有人稱為.8)。Java之所以如此受青睞,源于其先進(jìn)的設(shè)計(jì)理念和諸多特點(diǎn),如:簡(jiǎn)單、安全、面向?qū)ο蟆⒍嗑€程、跨平臺(tái)、分布式、動(dòng)態(tài)性、垃圾自動(dòng)回收機(jī)制等。可使用普通的文本編輯器(如記事本、寫字板等)來編寫Java程序,專業(yè)的開發(fā)工具效率更高。Java程序的編譯、運(yùn)行需要安裝相應(yīng)的環(huán)境。JDK 功能強(qiáng)大,支持程序的編譯、運(yùn)行(JRE只支持Java程序的運(yùn)行)。JDK的下載、安裝比較簡(jiǎn)單,通常要配置“clas
20、spath”“path”等環(huán)境變量。在命令行環(huán)境中使用Javac命令可編譯Java程序,使用Java命令可運(yùn)行應(yīng)用程序,使用appletviewer可運(yùn)行小應(yīng)用程序。Eclipse是Java開發(fā)的常用工具,它集編輯、編譯、運(yùn)行于一體,并提供多功能的圖形界面。熟悉Eclipse的使用,是必要、有益的。本章的重點(diǎn)是Java語(yǔ)言的特點(diǎn)、程序運(yùn)行環(huán)境的配置與使用、程序的基本結(jié)構(gòu)及JavaAPI文檔的使用。難點(diǎn)是對(duì)Java運(yùn)行機(jī)制、相關(guān)概念與語(yǔ)句的理解和熟悉。本章只要求掌握基本內(nèi)容,更多知識(shí)的學(xué)習(xí)依賴于后續(xù)章節(jié)。2.2Java的關(guān)鍵字、標(biāo)識(shí)符、常量和變量2.1 Java的數(shù)據(jù)類型2.3Java的運(yùn)算符、
21、表達(dá)式及語(yǔ)句2.5 Java程序的基本結(jié)構(gòu)及常用的輸入輸出格式2.4 Java的流程控制 目 錄 2.6數(shù)組Java是一種強(qiáng)類型語(yǔ)言,也就是說,Java程序中的數(shù)據(jù)要先聲明其數(shù)據(jù)類型,再使用。Java的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和引用類型兩大類,具體如下:整數(shù)類型(byte, short, int, long)數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型數(shù)值型字符型(char)布爾型(boolean)浮點(diǎn)類型(float, double)類(class)接口(interface)數(shù)組類型名稱關(guān)鍵字占用字節(jié)及位數(shù)數(shù)值范圍字節(jié)型byte1字節(jié)(即8位)-2727-1 (即:-128127)短整型short2字
22、節(jié)(即16位)-215215-1 (即:-3276832767) 整型int4字節(jié)(即32位)-231231-1 (即:-21億21億) 長(zhǎng)整型long8字節(jié)(即64位)-263263-1 (即:-922億億922億億)單精度浮點(diǎn)數(shù)float4字節(jié)(即32位)絕對(duì)值:3.4e-038 3.4e+038雙精度浮點(diǎn)數(shù)double8字節(jié)(即64位)絕對(duì)值:1.7e-308 1.7e+308字符型char2字節(jié)(即16位)0216-1 (即0 65535)布爾型boolean1字節(jié)(即8位)true 和 false2.1.1 基本數(shù)據(jù)類型字符型 即char,用來表示通常意義上字符、文本。1.整數(shù)類型包
23、括byte、short、int、long,表示無小數(shù)部分的數(shù)字,包括:正整數(shù)、零、負(fù)整數(shù)。2.浮點(diǎn)類型包括float、double,表示有小數(shù)部分的數(shù)字。布爾型即boolean,表示邏輯判斷的“真”、“假”。2.1.1 基本數(shù)據(jù)類型例2.1 char類型與int類型相互轉(zhuǎn)換。代碼如下:public class UnicodeTest public static void main(String args ) char c = 大;System.out.println( + c + 的Unicode編碼: + (int) c);int num = 23398;System.out.println
24、(Unicode編碼為 + num + 的字符是: + (char) num + );運(yùn)行結(jié)果大的Unicode編碼:22823Unicode編碼為23398的字符是:學(xué)2.1.1 基本數(shù)據(jù)類型字符型還有一種常用方式就是轉(zhuǎn)義字符,用來改變一些字符的原有含義,實(shí)現(xiàn)特定功能。格式為:特殊字符 ,常用的轉(zhuǎn)義字符如表所示(與C+類似):轉(zhuǎn)義字符功能轉(zhuǎn)義字符功能輸出單引號(hào)”輸出雙引號(hào)”輸出反斜杠b退格(backspace) n換行r回車,光標(biāo)移至當(dāng)前行開始t光標(biāo)移至下一個(gè)制表位(tab)2.1.1 基本數(shù)據(jù)類型如果是兩種相容的數(shù)據(jù)類型(如同為數(shù)值型),則它們之間可以進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換的方式有兩種:1.自動(dòng)類
25、型轉(zhuǎn)換:從取值范圍小的類型向取值范圍大的類型轉(zhuǎn)換(如:byte,short,char int long float double),這種轉(zhuǎn)換是自動(dòng)進(jìn)行,如:float f=10;2.強(qiáng)制類型轉(zhuǎn)換:從取值范圍大的類型向取值范圍小的類型轉(zhuǎn)換,需要進(jìn)行強(qiáng)制轉(zhuǎn)換,格式:目標(biāo)數(shù)據(jù)類型 變量=(目標(biāo)數(shù)據(jù)類型) 值; 2.1.2 數(shù)據(jù)類型的轉(zhuǎn)換萬物皆對(duì)象”是Java的一個(gè)重要觀點(diǎn),前面介紹的8種基本數(shù)據(jù)類型是不能用作“對(duì)象”來處理的,但可將它們轉(zhuǎn)換為對(duì)應(yīng)的對(duì)象類型,即:byte、Short、Integer、Long、Float、Double、Character、boolean,它們被稱為基本類型的包裝類(你
26、是否發(fā)現(xiàn)它們的命名規(guī)律?),這些類中的大多數(shù)都定義了MIN_VaLUE和MaX_VaLUE來表示對(duì)應(yīng)的基本類型的數(shù)值范圍。此外,還定義了許多有用的方法,有興趣的可以查閱Java aPI 文檔。2.1.3 引用數(shù)據(jù)類型關(guān)鍵字又稱保留字,是語(yǔ)言中具有特定含義的單詞,用戶在編寫程序時(shí)只能按系統(tǒng)規(guī)定的方式來使用它們。Java中的關(guān)鍵字有50多個(gè),按用途可劃分為幾個(gè)組別:1.標(biāo)識(shí)數(shù)據(jù)類型、對(duì)象:boolean、byte、char、double、false、float、int、long、new、null、short、true、void、instanceof;2.語(yǔ)句控制:break、case、catch、
27、continue、default、do、else、for、if、return、switch、try、while、finally、throw;3.修飾功能:this、super、abstract、final、native、private、protected、public、static、synchronized、transient、volatile;4.類、接口、方法、包和異常等的聲明、定義要求:class、extends、implements、interface、package、import、throws。2.2.1 關(guān)鍵字Java中的包名、類名、接口名、方法名、對(duì)象名、常量名、變量名等統(tǒng)稱為標(biāo)
28、識(shí)符。Java語(yǔ)言規(guī)定:標(biāo)識(shí)符必須是字母(嚴(yán)格區(qū)分大小寫)、下劃線(_)、美元符號(hào)($)開頭,后續(xù)字符除了這三類之外,還可以是數(shù)字及Unicode字符集中序號(hào)大于0 xC0的所有符號(hào)(包括中文字符、日文字符、韓文字符、阿拉伯字符等),但是關(guān)鍵字不能單獨(dú)作為標(biāo)識(shí)符,可作為標(biāo)識(shí)符的一部分。2.2.2 標(biāo)識(shí)符在Java中,有一些約定俗成的命名規(guī)則,熟知并使用這些規(guī)則有助于你讀懂別人的程序、讓自己的程序更規(guī)范、大方:1.包名通常為小寫,2.類名、接口名的首字母都為大寫;3.方法名的第一個(gè)字母通常是小寫;4.當(dāng)類名、接口名、方法名由多個(gè)單詞構(gòu)成時(shí),后面各單詞的首字母通常;5.用戶聲明的變量名、一個(gè)類的對(duì)
29、象名通常為小寫,如:str、temp。2.2.2 標(biāo)識(shí)符顧名思義,常量是指在程序運(yùn)行過程中,其值保持不變的量。常量除了前面說過的數(shù)值常量、字符常量、布爾常量之外,有時(shí)還可以用符號(hào)來表示(這稱為符號(hào)常量)。符號(hào)常量要使用關(guān)鍵字final來定義,格式為:final 數(shù)據(jù)類型 常量名=值例如:final double PI=3.1415926; 按照J(rèn)ava編程規(guī)范要求,符號(hào)常量名通常為大寫,且多個(gè)單詞之間用下劃線連接。如果是類常量,還要在數(shù)據(jù)類型前加上static關(guān)鍵字。查閱Java aPI文檔,你會(huì)發(fā)現(xiàn)許多類的符號(hào)常量都是用這種方式來命名的。常量的調(diào)用格式是 類名.常量名 。2.2.3 常量例
30、2.2 顯示類的靜態(tài)常量(通過 類名.常量名 方式來訪問)。代碼如下:public class MinMaxValueTest public static void main(String args ) System.out.println(int型的最小值: + Integer.MIN_VaLUE);System.out.println(int型的最大值: + Integer.MaX_VaLUE);System.out.println(int型數(shù)據(jù)所占位數(shù): + Integer.SIZE);運(yùn)行結(jié)果int型的最小值:-2147483648int型的最大值:2147483647int型數(shù)據(jù)所占
31、位數(shù):322.2.3 常量與常量不同,變量是指程序執(zhí)行過程中,其數(shù)值可以改變的量。變量包括變量名和變量值兩部分,變量名起標(biāo)識(shí)作用,變量值是計(jì)算機(jī)內(nèi)存單元存放的具體內(nèi)容。我們常用“鐵打的營(yíng)盤流水的兵”來形容部隊(duì)的建制特點(diǎn),這里的變量名相當(dāng)于“鐵打的營(yíng)盤”,是不變部分;變量值類似“流動(dòng)的兵”,是可變部分。變量是程序的重要組成部分,應(yīng)熟練掌握。2.2.4 變量變量的聲明1Java中的變量遵循“先聲明,再使用”的原則,通過聲明來指定變量的數(shù)據(jù)類型和名稱,變量的值可以在后續(xù)語(yǔ)句中賦予或改變。聲明格式:數(shù)據(jù)類型 變量名; 或 數(shù)據(jù)類型 變量名1, , 變量名k ;例如:double salary;bool
32、ean done;String 姓名;int studentNumber, peopleNumber; 從程序的可讀性角度來看,不建議將多個(gè)變量的聲明寫在同一行上。2.2.4 變量變量的賦值2賦值前,首先要檢查賦值號(hào)兩端的數(shù)據(jù)類型是否一致。當(dāng)類型不一致時(shí),如果符合類型自動(dòng)轉(zhuǎn)換條件,則賦值自動(dòng)完成;否則,必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換,不然會(huì)造成編譯錯(cuò)誤。2.2.4 變量變量的分類3依據(jù)的標(biāo)準(zhǔn)不同,變量分類的結(jié)果也不一樣。這里主要按變量的作用范圍來劃分,全局變量是指在類中聲明的類或?qū)ο蟮某蓡T,稱為成員變量,其作用范圍是整個(gè)類;局部變量是指在一個(gè)方法或一個(gè)方法的程序塊中聲明的變量,亦稱為本地變量,它的作用域
33、就是該方法或?qū)?yīng)的程序塊內(nèi)。2.2.4 變量變量的初始化4格式:數(shù)據(jù)類型 變量名 = 值; 或 數(shù)據(jù)類型 變量名1 = 值1, , 變量名k = 值k ;例如:int sum=0;實(shí)踐中,大家對(duì)于“變量的初始化”問題可能會(huì)有一些困惑,現(xiàn)總結(jié)為以下兩點(diǎn):(1)全局變量(即成員變量)如果不初始化,如表所示:變量類型默認(rèn)值變量類型默認(rèn)值變量類型默認(rèn)值byte0short0int0long0Lfloat0.0fdouble0.0charu000booleanfalse引用類型null(2)局部變量(即本地變量)必須初始化,否則將出錯(cuò)。 2.2.4 變量算術(shù)運(yùn)算符(+、- 、* 、/和)1所實(shí)現(xiàn)的功能與
34、數(shù)學(xué)中的運(yùn)算差不多,這里著重介紹兩個(gè)“特殊”的運(yùn)算符:(1)“/”進(jìn)行的是除法運(yùn)算,運(yùn)算結(jié)果與操作數(shù)的類型有關(guān):當(dāng)操作數(shù)為整數(shù)時(shí),執(zhí)行的是除法取整運(yùn)算,結(jié)果仍為整數(shù),例如:5/2的值為2;當(dāng)操作數(shù)為浮點(diǎn)數(shù)時(shí),則是通常意義上的除法,例如:5.0/2.0的結(jié)果為2.5;(2)“%”完成的是取模運(yùn)算,即求余數(shù),例如:5%2的結(jié)果為1,這可用來判斷整數(shù)的奇偶性。2.3.1 運(yùn)算符自增(自減)運(yùn)算符(+、 - - )2均為單目運(yùn)算符,功能是讓操作數(shù)的值增1(或減1),在循環(huán)語(yǔ)句中常用來修改循環(huán)變量的值,以控制循環(huán)次數(shù)。按照運(yùn)算符的位置不同,又可細(xì)分為前綴、后綴兩種形式,它們的功能不盡相同,現(xiàn)用兩個(gè)賦值表
35、達(dá)式來說明它們的差異,設(shè)x、y是兩個(gè)數(shù)值變量,那么:(1)y=+x(或y=-x):表示先讓x的值增1(或減1),再獲取x的值。(2)y=x+(或y=x-):表示先獲取x的值,再讓x的值增1(或減1)。從上不難看出,無論是前綴形式還是后綴形式,x的最終結(jié)果都是一樣,但是y值則不同。2.3.1 運(yùn)算符關(guān)系運(yùn)算符(、=、=、= 、!=)3它們的含義與數(shù)學(xué)中的關(guān)系運(yùn)算符相同,但是要注意書寫方法的差異,不能將=寫成=,運(yùn)算結(jié)果為boolean型,只能是true 或 false,主要用來進(jìn)行條件判斷或循環(huán)控制。仔細(xì)分析,可以發(fā)現(xiàn)有三組關(guān)系式:=、和=、=和!=,每對(duì)中的兩個(gè)運(yùn)算符都是互為相反結(jié)果的運(yùn)算,當(dāng)
36、其中的一個(gè)值為true時(shí),另一個(gè)運(yùn)算結(jié)果必定為false。清楚了這些關(guān)系,在構(gòu)造條件表達(dá)式時(shí),就能針對(duì)同一問題,使用兩種不同的表達(dá)式,達(dá)到“異曲同工”的效果。2.3.1 運(yùn)算符邏輯運(yùn)算符(! 、 & 、 |)4這三個(gè)運(yùn)算符的操作數(shù)都是boolean型,運(yùn)算結(jié)果也為boolean型。(1)單目運(yùn)算符!(非)的運(yùn)算規(guī)則是:!true即為false,!false則是true;(2)雙目運(yùn)算符&(與)的運(yùn)算規(guī)則是:只有同時(shí)為true時(shí),結(jié)果才為true;(3)雙目運(yùn)算符|(或)的運(yùn)算規(guī)則是:只有同時(shí)為false時(shí),結(jié)果才為false。2.3.1 運(yùn)算符邏輯運(yùn)算符(! 、 & 、 |)4它們的運(yùn)算優(yōu)先級(jí)
37、依次為!、&、|(或)。這里,再給出幾個(gè)等式,請(qǐng)思考:這些等式為什么成立。!a=a;!(a&b)=!a|!b;!(a|b)=!a&!b現(xiàn)在討論一下使用&、|運(yùn)算符時(shí)可能出現(xiàn)的“短路”現(xiàn)象:2.3.1 運(yùn)算符邏輯運(yùn)算符(! 、 & 、 |)4在形如:& & & 的表達(dá)式中,只要前面有一個(gè)表達(dá)式的值為false,則整個(gè)表達(dá)式的值就為false,此后各表達(dá)式不再計(jì)算,因?yàn)樗鼈兊闹禑o論是true還是false,都不會(huì)影響整個(gè)表達(dá)式的運(yùn)算結(jié)果。類似的,在形如:|的表達(dá)式中,只要前面有一個(gè)表達(dá)式的值為true,則整個(gè)表達(dá)式的值也就為true,后面各表達(dá)式的值也不必再計(jì)算,因?yàn)楹罄m(xù)表達(dá)式的值同樣不會(huì)影響整個(gè)
38、表達(dá)式的運(yùn)算結(jié)果?!岸搪贰爆F(xiàn)象帶來的直接后果是有些后續(xù)表達(dá)式?jīng)]有進(jìn)行運(yùn)算,要避免這種情況的發(fā)生,可使用位運(yùn)算符、來取代&、|。2.3.1 運(yùn)算符位運(yùn)算符(、& 、 | 、 )5計(jì)算機(jī)中的數(shù)據(jù)是以二進(jìn)制方式存儲(chǔ)的,利用位運(yùn)算符可以操作數(shù)據(jù)的“位”。其中:(1)(非)的運(yùn)算規(guī)則是:1即為0,0則是1;(2)& (與)的運(yùn)算規(guī)則是:只有同時(shí)為1時(shí),結(jié)果才為1;(3)| (或)的運(yùn)算規(guī)則是:只有同時(shí)為0時(shí),結(jié)果才為0;(4) (異或)的運(yùn)算規(guī)則是:只有一個(gè)位為1,另一個(gè)位為0時(shí),結(jié)果才為1。由“異或”運(yùn)算規(guī)則還可推出下列式子:aa=0,a0=a, c=ab, a=cb。如果雙方約定數(shù)據(jù)與同一個(gè)數(shù)b進(jìn)行
39、運(yùn)算,則可以實(shí)現(xiàn)加密、解密功能。2.3.1 運(yùn)算符移位運(yùn)算符( 、 )6(1) (左移):a(帶符號(hào)右移) :ab 表示將二進(jìn)制形式的a逐位右移b位,最高位空出的b位補(bǔ)原來的符號(hào)位(即正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1); (3) (無符號(hào)右移) :ab 表示將二進(jìn)制形式的a逐位右移b位,最高位空出的b一律補(bǔ)0。說明:移位運(yùn)算適用byte、short、char、int、long類型數(shù)據(jù),對(duì)低于int型的操作數(shù)將先自動(dòng)轉(zhuǎn)換為int型再移位; 對(duì)于int(或long)型整數(shù)移位ab,系統(tǒng)先將b對(duì)32(或64)取模,得到的結(jié)果才是真正移位的位數(shù)。2.3.1 運(yùn)算符賦值運(yùn)算符(=、+ =、-= 、*= 、/= 、%=
40、 、&= 、|= 、!= 、= )7在程序中大量使用賦值運(yùn)算符,其功能是:先計(jì)算右邊表達(dá)式的值,再賦給左邊的變量例如:x%=10; (%=是復(fù)合賦值運(yùn)算符,該表達(dá)式與 x=x%10; 等價(jià)) 再如:a=b=c=0; 連續(xù)賦值,此表達(dá)式與c=0, b=0, a=0等效,運(yùn)算順序從右向左。2.3.1 運(yùn)算符條件運(yùn)算符:(?:),三目運(yùn)算符8格式:邏輯表達(dá)式 ? 值1:值2 執(zhí)行過程:若邏輯表達(dá)式為true,就取值1,否則取值2。例如:設(shè)x、y是double型數(shù)據(jù),則:y= (x=0)? x : (-x);/得到x的絕對(duì)值2.3.1 運(yùn)算符程序的注釋1給程序添加注釋的目的,就是對(duì)程序某些部分的功能和
41、作用進(jìn)行解釋,以增加程序的可讀性。注釋在程序編譯時(shí)被刪除,所以它不是程序的必要部分,更不屬于語(yǔ)句范圍。但是,注釋是為語(yǔ)句服務(wù)的,兩者聯(lián)系密切,因此,放在這里介紹。Java程序的注釋有三種格式:(1)單行注釋:以/開始,到行尾結(jié)束;(2)多行注釋:以/*開始,到*/結(jié)束,可以跨越多行文本內(nèi)容。(3)文檔注釋:以/*開始,中間行以*開頭,到*/結(jié)束。使用這種方法生成的注釋,可被Javadoc類工具生成程序的正式文檔。2.3.3 語(yǔ)句復(fù)合語(yǔ)句2又稱塊語(yǔ)句,是包含在一對(duì)大括號(hào)(即由、包含)中的語(yǔ)句序列,整體可以看作是一條語(yǔ)句,所以,之前和之后都不要出現(xiàn)分號(hào)(;)。說明:(1)在復(fù)合語(yǔ)句中可以定義常量、
42、變量,但該常量、變量數(shù)據(jù)的作用域僅限該復(fù)合語(yǔ)句;(2)在復(fù)合語(yǔ)句中還可以包含其它的復(fù)合語(yǔ)句,即復(fù)合語(yǔ)句允許多層嵌套。2.3.3 語(yǔ)句通常,程序中的語(yǔ)句是按照書寫順序從上到下、逐條執(zhí)行的,這種程序執(zhí)行方式稱為順序執(zhí)行,對(duì)應(yīng)的程序結(jié)構(gòu)稱為順序結(jié)構(gòu)。順序結(jié)構(gòu)是程序設(shè)計(jì)的基礎(chǔ),經(jīng)常使用。該結(jié)構(gòu)比較簡(jiǎn)單,毋須作更多的介紹。2.4.1 順序結(jié)構(gòu)又稱分支結(jié)構(gòu),是指在程序執(zhí)行過程中,將根據(jù)條件是否滿足來選擇某一語(yǔ)句的執(zhí)行,也即是說某些語(yǔ)句可能因?yàn)闂l件不滿足而跳過。由于所執(zhí)行的語(yǔ)句經(jīng)過篩選,而非全部,所以,這種程序結(jié)構(gòu)就稱為選擇結(jié)構(gòu)。需要指出的是,Java中的“條件”只能是結(jié)果為boolean型的表達(dá)式,其值為
43、true或false,而其它類型(包括:byte、int、short、long、char等)均無資格擔(dān)當(dāng)這一角色。在這一點(diǎn)上,Java與C+/C是不一樣的,請(qǐng)加以注意。2.4.2 選擇結(jié)構(gòu)if語(yǔ)句:(條件語(yǔ)句)1單分支語(yǔ)句雙分支語(yǔ)句多分支語(yǔ)句2.4.2 選擇結(jié)構(gòu)switch語(yǔ)句:(開關(guān)語(yǔ)句)2引進(jìn)switch的目的,就是要在實(shí)現(xiàn)多分支時(shí),讓程序的結(jié)構(gòu)更加清晰、易懂。事實(shí)上,Java中的switch語(yǔ)句用法與C+中的類似。 2.4.2 選擇結(jié)構(gòu)格式: for (表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3 ) 循環(huán)體;for語(yǔ)句12.4.3 循環(huán)結(jié)構(gòu)格式: /初始化語(yǔ)句 while (條件表達(dá)式) 語(yǔ)句
44、塊/循環(huán)體/修改循環(huán)變量語(yǔ)句while語(yǔ)句22.4.3 循環(huán)結(jié)構(gòu)格式: /初始化語(yǔ)句do 語(yǔ)句塊 /循環(huán)體 /修改循環(huán)變量語(yǔ)句 while (條件表達(dá)式); /進(jìn)行條件判斷dowhile語(yǔ)句32.4.3 循環(huán)結(jié)構(gòu)while與dowhile的比較4主要有兩點(diǎn)不同:(1)有無分號(hào):while語(yǔ)句的(條件表達(dá)式)后一定不要加分號(hào);dowhile語(yǔ)句的(條件表達(dá)式)后應(yīng)加分號(hào);(2)循環(huán)體執(zhí)行次數(shù):while語(yǔ)句先判斷條件表達(dá)式的值是否為true,再?zèng)Q定是否執(zhí)行循環(huán)體,這樣,循環(huán)體有可能一次也不被執(zhí)行;而do-while語(yǔ)句是先執(zhí)行一次循環(huán)體,再根據(jù)條件表達(dá)式值的真假,以確定下一次循環(huán)是否進(jìn)行,因此,
45、循環(huán)體至少被執(zhí)行一次。2.4.3 循環(huán)結(jié)構(gòu)多重循環(huán)5如果在一個(gè)循環(huán)體內(nèi)允許包含另一個(gè)循環(huán),這稱為嵌套循環(huán)。其中:外層的循環(huán)稱為外循環(huán),內(nèi)層的循環(huán)稱為內(nèi)循環(huán),嵌套的層數(shù)可以根據(jù)需要達(dá)到一二十層之多。但是應(yīng)注意:外循環(huán)和內(nèi)循環(huán)不允許交叉嵌套。 2.4.3 循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語(yǔ)句6使程序的流程從一個(gè)語(yǔ)句塊內(nèi)部轉(zhuǎn)移出去。該語(yǔ)句可用在循環(huán)結(jié)構(gòu)和switch語(yǔ)句中,允許從循環(huán)體內(nèi)部跳出或從switch的case子句跳出,但不允許跳入任何語(yǔ)句塊內(nèi)。break語(yǔ)句2.4.3 循環(huán)結(jié)構(gòu)格式有兩種:不帶標(biāo)簽的break語(yǔ)句:break;跳出switch語(yǔ)句或所在的循環(huán)(只跳出一層循環(huán)),繼續(xù)后續(xù)語(yǔ)句的執(zhí)行。帶標(biāo)簽的br
46、eak語(yǔ)句:break標(biāo)簽;(注:標(biāo)簽由標(biāo)識(shí)符加冒號(hào)組成)從多重循環(huán)語(yǔ)句中,跳出標(biāo)簽所指的塊(某層循環(huán)),從該塊的后續(xù)語(yǔ)句處執(zhí)行。終止本次循環(huán),根據(jù)條件來判斷下一次循環(huán)是否執(zhí)行,只能用在循環(huán)結(jié)構(gòu)中。continue語(yǔ)句跳轉(zhuǎn)語(yǔ)句62.4.3 循環(huán)結(jié)構(gòu)格式有兩種:不帶標(biāo)簽的continue語(yǔ)句:continue;在while或dowhile語(yǔ)句中,直接跳轉(zhuǎn)到循環(huán)條件的判斷處,在for語(yǔ)句中則直接計(jì)算表達(dá)式3的值,然后再?zèng)Q定是否繼續(xù)循環(huán)。帶標(biāo)簽的continue語(yǔ)句:continue標(biāo)簽;終止內(nèi)循環(huán)的執(zhí)行,直接跳到標(biāo)簽標(biāo)識(shí)的外層循環(huán)處,根據(jù)條件來判斷下一次循環(huán)是否執(zhí)行。到目前為止,我們已經(jīng)接觸了十幾
47、個(gè)Java程序,對(duì)它們的結(jié)構(gòu)有一定的了解,Java程序大致有如下的形式: package 包名;/包語(yǔ)句最多1條,位置在最前面import 包名.類名;/導(dǎo)入語(yǔ)句可以沒有,也可以1條或多條 publicclass類名/主類應(yīng)該用public關(guān)鍵字修飾,且文件主名與主類名稱相同 / public static void main(String args ) /程序其它代碼從功能上看,Java程序通常應(yīng)包含輸入、處理、輸出等幾部分。2.5.1 程序的基本結(jié)構(gòu)常用的輸入格式有四種1(1)命令行方式:用main()方法的參數(shù)來表示,args 0代表第1個(gè)參數(shù),args 1代表第2個(gè)參數(shù),以此類推。如果
48、數(shù)據(jù)的目標(biāo)類型是數(shù)值型,則需要調(diào)用包裝類的靜態(tài)方法parseXxx()把字符串轉(zhuǎn)換成數(shù)值型。由于這種方法是在命令行下提供數(shù)據(jù),一定程度上限制它的使用。2.5.2 常用的輸入輸出格式常用的輸入格式有四種1(2)傳統(tǒng)的“I/O流”方式:采用“字節(jié)流字符流緩沖流”逐層包裝方法,將代表鍵盤的System.in最終包裝成字符緩沖輸入流,這樣,就可以調(diào)用它的readLine()方法來獲取鍵盤輸入內(nèi)容。當(dāng)然,如果數(shù)據(jù)的目標(biāo)類型是數(shù)值型,則也需要進(jìn)行轉(zhuǎn)換。以下是一些主要代碼,僅供參考:Importjava.io. *;/導(dǎo)入java.io包的類InputStreamReader in =new InputSt
49、reamReader(System.in) ;/將字節(jié)流包裝成字符流BufferedReader br=new BufferedReader(in); /將字符流包裝成緩沖流String str=br.readLin();/從鍵盤讀取一行字符串到str中float score=Float.parseFloat(str); /將字符串轉(zhuǎn)換成數(shù)值型,這里以float型為例,其他類型類似處理2.5.2 常用的輸入輸出格式(3)使用Scanner類:這是JDK 1.5后新增的內(nèi)容,該類位于Java.util包中,只需將System.in包裝成Scanner實(shí)例即可,調(diào)用相應(yīng)的方法來輸入目標(biāo)類型的數(shù)據(jù),
50、不需要再進(jìn)行類型轉(zhuǎn)換。這種輸入方法簡(jiǎn)便、易用,值得推廣。主要代碼如下:Import java.util. *; /引入java.util包中的類Scanner sn=new Scanner(System.in);/將字節(jié)流包裝成Scanner類float score=sn.nextFloat(); /從鍵盤輸入對(duì)應(yīng)的數(shù)值型,這里以float型為例,其他類型類似處理2.5.2 常用的輸入輸出格式常用的輸入格式有四種1(4)圖形界面的輸入方式:通過調(diào)用Javax.swing包中JOptionPane類的靜態(tài)方法showInputDialog()來實(shí)現(xiàn),輸入的是字符串,也可能需要進(jìn)行類型轉(zhuǎn)換。這種方
51、法的優(yōu)點(diǎn)是界面漂亮,主要代碼如下:importjavax.swing. *;/導(dǎo)入javax.swing包中的類String str=JOptionPane.showInputDialog(提示信息);/從鍵盤讀取一行字符串到str中Float score=Float.parseFloat(str);/將字符串轉(zhuǎn)換成數(shù)值型,這里以float型為例,其他類型類似處理2.5.2 常用的輸入輸出格式常用的輸入格式有四種1常用的輸出格式有兩種2(1)傳統(tǒng)的“I/O流”方式:最常用,可以用“+”運(yùn)算符將各種數(shù)據(jù)類型數(shù)據(jù)與字符串連接起來。格式:System.out.print(輸出內(nèi)容);/不換行或Sys
52、tem.out.println(輸出內(nèi)容);/換行2.5.2 常用的輸入輸出格式常用的輸出格式有兩種2(2)圖形界面的輸出方式:通過調(diào)用Javax.swing包中JOptionPane類的靜態(tài)方法showMessageDialog()來實(shí)現(xiàn),當(dāng)輸出內(nèi)容要分成多行時(shí),可在字符串中插入。主要代碼如下:importjavax.swing. *; /導(dǎo)入javax.swing包中的類JOptionPane.showMessageDialog(null,輸出內(nèi)容(為String類型));在這里列舉以上內(nèi)容,是希望大家在學(xué)習(xí)編程時(shí),能夠根據(jù)需要選用相應(yīng)的格式,并不要求提前去掌握相關(guān)知識(shí)點(diǎn),能“照葫蘆畫瓢”
53、即可。2.5.2 常用的輸入輸出格式在Java中,數(shù)組是一種引用類型(即對(duì)象類型),是由類型相同的若干數(shù)據(jù)組成的有序集合,其中的每一個(gè)數(shù)據(jù)稱為元素。在一個(gè)數(shù)組中:1每一個(gè)元素的數(shù)據(jù)類型都是相同的,數(shù)組元素可以是基本類型,也可以是對(duì)象類型,甚至還可以是數(shù)組類型(如:多維數(shù)組);2所有元素共用一個(gè)數(shù)組名,數(shù)組中的每一個(gè)元素都是有順序的,利用數(shù)組名和數(shù)組下標(biāo)可以唯一地確定數(shù)組中每一個(gè)元素的位置;3數(shù)組要經(jīng)過聲明、分配內(nèi)存及賦值后,才能使用。2.6.1 數(shù)組的概念數(shù)組的聲明1格式:數(shù)據(jù)類型 數(shù)組名 或數(shù)據(jù)類型 數(shù)組名 說明:數(shù)據(jù)類型可以是基本數(shù)據(jù)類型、對(duì)象類型,數(shù)組名為合法的標(biāo)識(shí)符, 是數(shù)組類型的標(biāo)志
54、。例如:int score ;float salary;Date datearray;String 福娃;第一個(gè)數(shù)組聲明使用的是傳統(tǒng)方式, 位于變量名之后;后三個(gè)聲明采用的是 在前的Java方式,因符合“類型部分在左,而變量名在右”的普通變量聲明方式,故推薦使用后者。2.6.2 一維數(shù)組數(shù)組的聲明1從上面的例子可以看出,Java數(shù)組與C+/C數(shù)組的聲明還是存在差異的,這里強(qiáng)調(diào)兩點(diǎn):(1) Java數(shù)組的聲明只是指明了一個(gè)對(duì)象引用,并沒有為數(shù)組元素分配內(nèi)存空間。因此,聲明時(shí)不能指定數(shù)組元素的個(gè)數(shù)。例如:inta 10;/錯(cuò)誤(2)只進(jìn)行了聲明的數(shù)組,它的元素是不能被訪問的,只有經(jīng)過初始化后,才能
55、訪問數(shù)組的元素。2.6.2 一維數(shù)組數(shù)組的創(chuàng)建2格式:new 數(shù)據(jù)類型 數(shù)組的長(zhǎng)度功能:在內(nèi)存的堆中為數(shù)組元素分配空間由于數(shù)組是對(duì)象類型,所以,要用關(guān)鍵字new在堆中分配空間。通常,是把分配空間的首地址賦給已聲明的數(shù)組名,即:數(shù)組名= new 數(shù)據(jù)類型 數(shù)組的長(zhǎng)度;。當(dāng)然,也可以把數(shù)組聲明、創(chuàng)建“合二為一”,即:數(shù)據(jù)類型 數(shù)組名=new 數(shù)據(jù)類型 數(shù)組的長(zhǎng)度;或數(shù)據(jù)類型數(shù)組名 =new 數(shù)據(jù)類型 數(shù)組的長(zhǎng)度;例如:int score ;/數(shù)組聲明,為基本數(shù)據(jù)類型score = new int 100; /為int型數(shù)組申請(qǐng)內(nèi)存空間,并把首地址賦給數(shù)組名Date datearray= new D
56、ate 5;/對(duì)象數(shù)組,將聲明、創(chuàng)建“合二為一”2.6.2 一維數(shù)組數(shù)組的初始化3含義:在聲明數(shù)組的同時(shí),就為數(shù)組元素分配空間并賦值。例如:int a = 1, 6, 8; 相當(dāng)于 int a = new int 3; a 0=1, a 1=6, a 2=8;又如:String 福娃= 貝貝, 晶晶 , 歡歡 , 迎迎 , 妮妮 ; 相當(dāng)于:String 福娃= new String 5 ; 和 福娃 0= 貝貝; 福娃 1= 晶晶 ;福娃 2= 歡歡 ; 福娃 3= 迎迎 ; 福娃 4= 妮妮 ;2.6.2 一維數(shù)組數(shù)組元素的訪問和數(shù)組大小的獲取4訪問格式:數(shù)組名 index說明:index
57、稱為數(shù)組元素下標(biāo),可以是整型常量或整型表達(dá)式,如:a 0 , b i , c 5*i,利用循環(huán)語(yǔ)句可以批量訪問或設(shè)置數(shù)組元素的值,index的取值范圍:0 數(shù)組長(zhǎng)度-1。2.6.2 一維數(shù)組數(shù)組是由相同類型的一組數(shù)據(jù)按順序構(gòu)成的一種數(shù)據(jù)結(jié)構(gòu)。在java中,數(shù)組組成元素的類型既可以是簡(jiǎn)單的基本類型,如int、float等,也可以是復(fù)雜的引用類型,如對(duì)象等。在2.1.1節(jié),我們已經(jīng)介紹了基本類型的數(shù)組,在這一節(jié)中我們將介紹以對(duì)象為數(shù)組元素的對(duì)象數(shù)組。2.6.3 對(duì)象數(shù)組當(dāng)數(shù)組元素的類型為對(duì)象時(shí),稱數(shù)組為對(duì)象數(shù)組。聲明對(duì)象數(shù)組的格式如下:類名 數(shù)組名=new 類名 數(shù)組元素個(gè)數(shù);或類名數(shù)組名 =ne
58、w 類名 數(shù)組元素個(gè)數(shù);假設(shè)有如下定義的Student類:class Studentint no;String name;Student( int sno , String sname ) no =sno ; name = sname則聲明一個(gè)Student類型,長(zhǎng)度為4的數(shù)組如下所示:Student student =newStudent 4;2.6.3 對(duì)象數(shù)組聲明對(duì)象數(shù)組1初始化對(duì)象數(shù)組需要為每個(gè)元素創(chuàng)建對(duì)象,例如上述聲明的Student數(shù)組,對(duì)各個(gè)元素的初始化如下:student 0new Student(2006090001,小劉);student 1new Student(2006
59、090002,小李);student 2new Student(2006090003,小唐);student 3new Student(2006090004,小何);注:也可以將對(duì)象數(shù)組聲明和初始化結(jié)合在一起進(jìn)行,如:Student student new Student(2006090001,小劉),new Student(2006090002,小李),new Student(2006090003,小唐),new Student(2006090004,小何)上述語(yǔ)句中,初始化的元素個(gè)數(shù)代表了數(shù)組的長(zhǎng)度。2.6.3 對(duì)象數(shù)組初始化對(duì)象數(shù)組2訪問對(duì)象數(shù)組元素有兩個(gè)步驟,第一步需要引用數(shù)組元素,引
60、用方法跟基本數(shù)組的完全一樣,即需要使用下標(biāo)來引用元素,且下標(biāo)從0開始;第二步是使用“”操作符來訪問引用元素的成員,例如:,s0.no。2.6.3 對(duì)象數(shù)組訪問對(duì)象數(shù)組元素3Java中的多維數(shù)組實(shí)際上就是數(shù)組的數(shù)組,即數(shù)組中的各元素仍是一個(gè)數(shù)組(它的維數(shù)降低了一維),例如:把一個(gè)二維數(shù)組看作是一個(gè)一維數(shù)組,而這個(gè)一維數(shù)組的各數(shù)組元素又是一維數(shù)組;可以把三維數(shù)組看作是一維數(shù)組,而這個(gè)一維數(shù)組的各數(shù)組元素又是二維數(shù)組;其余的類似。2.6.4 多維數(shù)組格式:數(shù)據(jù)類型數(shù)組名或數(shù)據(jù)類型數(shù)組名例如:int array;String words;與一維數(shù)組相似,由于數(shù)組聲明時(shí)并沒有分配內(nèi)存空間,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教案用紙(正業(yè))
- 保護(hù)環(huán)境課件下載
- 玉溪師范學(xué)院《西方哲學(xué)史》2021-2022學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《試驗(yàn)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《民法學(xué)》2022-2023學(xué)年期末試卷
- 好樂迪超市作業(yè)流程教案
- 普通人18條忠告
- 2024年生化分析試劑項(xiàng)目成效分析報(bào)告
- 采購(gòu)合同 和付款合同
- 畢業(yè)攝影合同范本
- 文藝復(fù)興經(jīng)典名著選讀 知到智慧樹網(wǎng)課答案
- 2024年北京出版集團(tuán)有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 2024年成都電子信息產(chǎn)業(yè)功能區(qū)建設(shè)發(fā)展有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 2022-2023學(xué)年福建省廈門一中九年級(jí)(上)期中物理試卷
- 足球球性球感練習(xí)教案
- 做一個(gè)有溫度的護(hù)士課件
- 鋰離子電池制造中的安全問題與防范措施
- 生鮮超市供貨超市供貨服務(wù)方案
- 體育器材登記臺(tái)賬
- 中小學(xué)數(shù)學(xué)教學(xué)有效銜接教育探索
- DB32T 4401-2022《綜合醫(yī)院建筑設(shè)計(jì)標(biāo)準(zhǔn)》
評(píng)論
0/150
提交評(píng)論