Java基礎(chǔ)培訓(xùn)教程摘抄_第1頁
Java基礎(chǔ)培訓(xùn)教程摘抄_第2頁
Java基礎(chǔ)培訓(xùn)教程摘抄_第3頁
Java基礎(chǔ)培訓(xùn)教程摘抄_第4頁
Java基礎(chǔ)培訓(xùn)教程摘抄_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java基礎(chǔ)培訓(xùn)教程老虎工作室 沈伯青 編著人民郵電出版社第二章 運運行環(huán)境境安裝與與測試P5 JJavaa不進提提供了一一個運行行環(huán)境,而而且還提提供了一一個免費費的Jaava軟軟件開發(fā)發(fā)工具集集JSDDK(JJavaa Sooftwwaree Deevellopmmentt Kiit),有有了這個個工具集集就可以以在Jaava標標準平臺臺(J22SE)上上進行JJavaa代碼程程序的開開發(fā)。JJSDKK最初被被成為JJavaa Deevellopmmentt Kiit(JJDK),最最開始發(fā)發(fā)行的版版本是11.1,后后來隨著著Javva的發(fā)發(fā)展,JJSDKK 的版版本逐漸漸增加,有有了1.

2、2版本本、1.3版本本等,目目前已經(jīng)經(jīng)升級到到1.44版本。在在Javva中,統(tǒng)統(tǒng)一稱11.2版版本或更更高的版版本為JJavaa 2。JJSDKK包括生生成Jaava中中最基本本的小應(yīng)應(yīng)用程序序和應(yīng)用用程序所所需要的的所有工工具和標標準Jaava類類庫。Java平平臺分為為三種,他他包括JJavaa標準平平臺(JJ2SEE,Jaava 2 PPlattforrm SStanndarrd EEdittionn)、JJavaa企業(yè)級級平臺(JJ2EEE,Jaava 2 PPlattforrm EEnteerprrisee Edditiion)和和Javva小型型平臺(JJ2MEE,Jaava 2

3、 PPlattforrm MMicrro EEdittionn),其其中J22EE和和J2MME平臺臺上的應(yīng)應(yīng)用實現(xiàn)現(xiàn)都是要要建立在在J2SSE平臺臺基礎(chǔ)之之上的。P9 現(xiàn)現(xiàn)已將JJSDKK安裝在在“D:JJSDKK14”目錄下下,可以以根據(jù)路路徑找到到該目錄錄并查看看該目錄錄中的內(nèi)內(nèi)容,如如圖2-9所示示??梢钥吹侥磕夸浵掠杏?個子子目錄分分別是“binn、deemo、iinclludee、jrre、llib”,以及及5個文文件。對對于初學(xué)學(xué)者來說說,需要要注意的的是“binn”目錄和和“l(fā)ibb”目錄下下的內(nèi)容容。雙擊“biin”目錄,發(fā)發(fā)現(xiàn)有223個后后綴名為為“.exxe”的實用用程序

4、。這這些都是是開發(fā)工工具庫所所自帶的的工具。對對于初學(xué)學(xué)者來說說血藥了了解和掌掌握的是是8個工工具,見見表2-1。其其中讀者者能夠很很快遇到到并需要要掌握的的工具是是:Jaavacc、Jaava、AApplletvviewwer、JJavaadocc,其次次是Jaar,然然后是JJdb、JJavaap、JJavaah。對對于剩下下的155個工具具,讀者者可以查查詢相關(guān)關(guān)的幫助助文件。表2-1 JJSDKK的8種種主要工工具名稱解釋JavaccJava編編譯器,將將Javva源文文件代碼碼轉(zhuǎn)換成成Javva字節(jié)節(jié)代碼,編編譯后綴綴名為“.jaava”的根文文件,生生成一個個新的后后綴名為為“.c

5、llasss”的類文文件,其其文件名名和根文文件的文文件名相相同JavaJava編編譯器,用用來執(zhí)行行生成的的后綴名名為“.cllasss”的類文文件,即即執(zhí)行JJavaa應(yīng)用程程序自己己代碼Appleetviieweer小應(yīng)用程序序的Jaava瀏瀏覽器,主主要是執(zhí)執(zhí)行后綴綴名為“.httml”或者是是“.httm”的文件件,這些些文件的的內(nèi)容嵌嵌套著JJavaa小應(yīng)用用程序類類JavaddocJava說說明工具具,根據(jù)據(jù)Javva源代代碼及其其說明語語句生成成相關(guān)的的HTMML文檔檔,編程程者可以以很方便便的通過過HTMML文檔檔來了解解Javva源代代碼的功功能、方方法及其其繼承關(guān)關(guān)系Jd

6、bJava調(diào)調(diào)試器,可可以逐行行執(zhí)行程程序、設(shè)設(shè)置斷點點和檢查查變量JavappJava反反匯編器器,顯示示編譯類類文件中中可訪問問功能和和數(shù)據(jù),同同時顯示示字節(jié)代代碼的含含義JarJava檔檔案文件件生成器器,用它它可以生生成的后后綴名為為“.jaar”文件,JJAR文文件可以以在一個個壓縮文文件中發(fā)發(fā)布多個個Javva類和和資源,這這個資源源可以包包括喲GGIF圖圖片資源源、HTTML文文檔資源源等Javabb頭文件生成成器,產(chǎn)產(chǎn)生可以以調(diào)用的的Javva過程程的C過過程,也也可以建建立能被被Javva程序序調(diào)用的的C過程程的文件件頭P10 = 1 * GB3雖然已已經(jīng)安裝裝了JSSDK,

7、也也同時安安裝好了了Javva運行行環(huán)境,但但是Jaava語語言是跨跨平臺的的,無論論在什么么平臺或或者操作作系統(tǒng)下下的文本本編輯器器里都可可以編寫寫“.jaava”代碼,最最終都要要經(jīng)過JJavaac編譯譯器將源源代碼轉(zhuǎn)轉(zhuǎn)換成與與平臺無無關(guān)的“.cllasss”字節(jié)代代碼,這這是Jaava語語言編程程的一個個重要特特性,也也是其體體現(xiàn)出跨跨平臺優(yōu)優(yōu)越性的的保證。= 2 * GB3本書中對對“.jaava”代碼的的Javvac編編譯器所所執(zhí)行的的操作也也是在WWinddowss操作系系統(tǒng)中的的【命令令提示符符】窗口口下進行行的。【命命令提示示符】窗窗口下只只能執(zhí)行行缺省的的DOSS命令,如如c

8、d、ddir、ccleaar等,如如果要執(zhí)執(zhí)行Jaavacc、Jaava、JJavaadocc等命令令,則需需要進行行額外的的環(huán)境變變量的設(shè)設(shè)置。表2-2 本本書常用用的基本本DOSS命令名稱解釋DirDOS查詢詢命令,用用來查詢詢所在目目錄的具具體文件件信息等等cd用來進入某某一個文文件夾,其其中“”表示文文件夾名名稱,“cd”和文件件夾名稱稱之間有有一個空空格cd.退出當前文文件夾目目錄進入入上一級級目錄,其其中“”表示當當前所在在的文件件夾名稱稱%:&轉(zhuǎn)換盤符操操作,從從“%”盤符轉(zhuǎn)轉(zhuǎn)入到“&”盤符,其其中“%”“&”均為盤盤符,它它們一般般代表“C,DD,E”例如如“C:D”表示從從C

9、盤轉(zhuǎn)轉(zhuǎn)到D盤盤P11設(shè)置置Patth變量量:首先打開我我的電腦腦右鍵屬屬性高級級選項卡卡中的環(huán)環(huán)境變量量,找到到系統(tǒng)變變量分組組框中的的“Patth”系統(tǒng)變變量,保保持變量量名的“Patth”不變,在在變量值值的文本本編輯框框內(nèi)的末末尾添加加“;D:JSSDK114bbin”的字樣樣,這樣樣就可以以在命令令提示符符窗口中中執(zhí)行JJavaac、JJavaa、Jaavaddoc等等命令了了。提示:這里里假設(shè)JJSDKK已經(jīng)安安裝在DD盤的JJSDKK14目目錄下,將將“binn”目錄添添加到系系統(tǒng)變量量“Patth”中,確確保了“binn”目錄下下的可執(zhí)執(zhí)行文件件可以在在命令提提示符窗窗口下運運行

10、。只設(shè)置了PPathh環(huán)境變變量對運運行所有有可執(zhí)行行文件還還是不夠夠的,因因為在“.jaava”代碼中中,還可可能引用用JSDDK缺省省的幾個個Javva類包包,否則則用“Javvac編編譯器”無法將將代碼成成功編譯譯而生成成“.cllasss”類文件件,所以以Javva還要要利用另另一個環(huán)環(huán)境變量量CLLASSSPATTH。P12 添添加CLLASSSPATTH環(huán)境境變量:Java運運行環(huán)境境從“CLAASSPPATHH”環(huán)境變變量中尋尋找到要要執(zhí)行的的Javva了。如如果設(shè)置置不當,則則可能遇遇到各種種因為找找不到指指定的類類而引起起的各種種錯誤。在環(huán)境變量量對話框框中單機機系統(tǒng)變變量分

11、組組框的新新建按鈕鈕,新建建變量名名為“CLAASSPPATHH”變量值值為“.;DD:JJSDKK14libbdtt.jaar;DD:JJSDKK14libbtooolss.jaar”的系統(tǒng)統(tǒng)變量。這這里需要要注意的的是變量量值中最最前面的的兩個符符號:一一個點號號“.”和一個個分號“;”不能漏漏掉。P13 環(huán)環(huán)境測試試:在命令提示示符中輸輸入java verrsioon可以判定JJSDKK 版本本、jaava運運行環(huán)境境版本等等。除此此之外,還還可以輸輸入以下下命令:java hjar hjavaddoc hjavacc h來查詢執(zhí)行行程序的的相關(guān)參參數(shù)使用用方法。P14程序序測試:新建文

12、本文文檔輸入入以下程程序,publiic cclasss ttesttHelllo puubliic sstattic voiid mmainn(Sttrinng aarg) Syysteem.oout.priintlln(Helllo,這是一一個測試試!);/中文狀狀態(tài)下輸輸入的分分號 /maain()/*teestHHelllo */將文件命名名為“tesstHeelloo.jaava”。保存存位置是是“E:proograam002ttesttHelllo.javva”。文件保存成成功之后后,在命命令提示示符窗口口中進入入到“E:proograam002”目錄。輸輸入的命命令那個個依次為為

13、:E:cd prrogrramcd 022這樣就進入入了“E:proograam002”目錄,在在次目錄錄下依次次輸入如如下命令令:dirjavacc teestHHelllo.jjavaajava tesstHeelloodir這時會發(fā)現(xiàn)現(xiàn)目錄下下多了一一個“tesstHeelloo.cllasss”文件,這這是Jaavacc編譯器器將源代代碼編譯譯成字節(jié)節(jié)代碼生生成類文文件的結(jié)結(jié)果。顯顯示輸出出的“Helllo,這這是一個個測試!”是Jaava編編譯器直直接執(zhí)行行Javva應(yīng)用用程序字字節(jié)代碼碼的結(jié)果果。P16 JJavaa應(yīng)用程程序流程程:一個Javva應(yīng)用用程序首首先是經(jīng)經(jīng)過文本本編輯

14、器器的編輯輯工作得得到Jaava源源代碼,源源代碼經(jīng)經(jīng)過Jaavacc編譯器器編譯之之后產(chǎn)生生Javva類文文件,再再經(jīng)Jaava編編譯器編編譯執(zhí)行行得到輸輸出程序序。其中中Javvadooc執(zhí)行行程序可可以對JJavaac源代代碼進行行操作,生生成關(guān)于于Javvac源源代碼的的說明文文檔,這這種文檔檔是以HHTMLL格式輸輸出的;另外JJavaap執(zhí)行行程序可可以對JJavaa類文件件進行操操作,得得到的是是對Jaava類類文件反反編譯的的結(jié)果,同同時也看看到Jaava源源代碼的的方法分分布情況況。P17 建建檔應(yīng)用用程序JJavaadocc:Javaddoc是是建檔應(yīng)應(yīng)用程序序。它將將能源

15、代代碼自動動建檔,這這樣做的的好處是是在源代代碼進行行一定格格式的說說明之后后,可以以將這些些說明自自動傳輸輸?shù)紿TTML文文件中,是是開發(fā)者者直接從從生成的的Javvadooc文檔檔中查找找到相關(guān)關(guān)類一集集相關(guān)類類的方法法、屬性性變量。代代碼程序序中的說說明字段段是需要要放在“/*”和“*/”之間的的,這樣樣Javvadooc編譯譯器才可可以識別別這些說說明字段段。/*這是是一個有有說明的的Javva應(yīng)用用程序*/publiic cclasss ttesttNotteHeelloo /* *這這是teestNNoteeHelllo類類的主函函數(shù),他他主要是是輸出一一句話。 */ puubli

16、ic sstattic voiid mmainn(Sttrinng aarg) Syysteem.oout.priintlln(Helllo,這是一一個有說說明的測測試!); /maain()/*ttesttNotteHeelloo*/將以上文字字生成文文檔時,在在命令提提示符窗窗口“E:proograam002”目錄下下需要輸輸入:javaddoc tesstNooteHHelllo.jjavaa這里不必先先將“tesstNooteHHelllo.jjavaa”文件通通過Jaavacc編譯器器編譯成成“tesstNooteHHelllo.cclasss”文件。最后輸出了了10個個新的HHTM

17、LL文件和和1個“pacckagge-llistt”文件以以及1個個樣式單單(CSSS)文文件,這這個CSSS文件件的作用用是包含含HTMML頁面面的格式式信息。是是修飾或或者約束束HTMML文件件顯示格格式的。打打開“tesstNooteHHelllo.hhtmll”文件,則則可以看看到代碼碼程序中中的文檔檔說明一一集次代代碼類的的摘要信信息。P18 反反匯編器器Javvap: JJavaap工具具可以查查詢?nèi)魏魏晤?,檢檢查類的的方法。它它只在類類文件也也就是“.cllasss”文件生生成之后后進行操操作,也也就是說說它操作作的對象象必須是是類文件件,僅接接受類名名,實際際操作是是在命令令提

18、示符符窗口“E;proograam002”目錄下下輸入:javapp teestNNoteeHelllo得到的清單單信息為為:Compiiledd frrom tesstNooteHHelllo.jjavaapubliic cclasss ttesttNotteHeelloo exxtennds javva.llangg.Obbjecct puubliic ttesttNotteHeelloo(); puubliic sstattic voiid mmainn(jaava.lanng.SStriing);這里顯示了了兩個方方法,ttesttNotteHeelloo()和和maiin()。tte

19、sttNotteHeelloo()成成為缺省省的構(gòu)造造函數(shù),這這是一個個特殊的的方法,如如果在源源代碼中中沒有特特殊指定定該類的的構(gòu)造方方法,則則這個沒沒有入口口參數(shù)的的缺省的的構(gòu)造方方法將會會自動的的在Jaavapp中生成成,而mmainn()方方法是源源代碼中中的。這這樣通過過Javvap執(zhí)執(zhí)行程序序操作也也可以看看到源代代碼的方方法構(gòu)造造情況。Javapp也選用用“h”方法來來查詢其其參數(shù)使使用方法法。當選選擇參數(shù)數(shù)為“c”時:javapp c ttesttNotteHeelloo結(jié)果顯示基基礎(chǔ)的字字節(jié)代碼碼的序列列和方法法清單。Compiiledd frrom tesstNooteHH

20、elllo.jjavaapubliic cclasss ttesttNotteHeelloo exxtennds javva.llangg.Obbjecct puubliic ttesttNotteHeelloo();publiic sstattic voiid mmainn(jaava.lanng.SStriing);Methood ttesttNotteHeelloo() 0 aaloaad_00 1 iinvookesspecciall 11 4 rretuurnMethood vvoidd maain(javva.llangg.Sttrinng) 0 ggetsstattic 2 3

21、lldc 3 5 iinvookevvirttuall 44 8 rretuurn實際上這些些命令就就是經(jīng)過過Javvap反反匯編生生成的源源代碼,但但和真正正的“.jaava”源代碼碼有很大大的出入入,這是是因為將將字節(jié)代代碼再轉(zhuǎn)轉(zhuǎn)換成源源代碼必必然會有有損耗而而和實際際不符,但但大體表表現(xiàn)出源源代碼中中方法的的具體信信息。因因為“.cllasss”類文件件無法用用一般的的文本編編輯器查查看,所所以使用用者在不不知道源源代碼的的具體信信息時常常常采用用此方法法來了解解一個類類文件中中的信息息。第三章 面面向?qū)ο笙蠛皖惖牡母拍頟22 相相似對象象的抽象象稱之為為類(CClasss),它它有著對

22、對象的特特征:屬屬性和行行為。也也就是說說,類是是相似或或者相同同對象的的一個抽抽象的集集合,這這個集合合包括了了一些對對象所共共有的性性質(zhì)。另另一方面面,通過過類可以以獲得一一個對象象,稱之之為對象象的實例例(Innstaancee),一一個“類”就像是是一個壓壓制模型型的板子子,可以以做出許許許多多多類似但但獨立的的個別對對象。因因此要使使用對象象,需要要首先建建立一個個類,再再通過“對象建建立”的動作作產(chǎn)生所所需對象象。而每每一個產(chǎn)產(chǎn)生的對對象就是是一個獨獨立的個個體,擁擁有自己己的狀態(tài)態(tài)變量值值。P24 一一個類的的結(jié)構(gòu)用用“修飾符符+cllasss+類名名”和一對對大括號號來描述述。

23、例如如程序清清單3.1,類類的類體體為:publiic cclasss vvehiiclee /*veehiccle*/類中定義的的4個屬屬性,它它們?yōu)椤癹ouurneey、wwheeelNuum、lloaddNumm、drriveerSppeedd”和兩個個方法vvehiiclee()和和driiverr()方方法。屬屬性的定定義用“修飾符符+數(shù)據(jù)據(jù)類型+聲明變變量+分分號”來描述述,例如如:publiic ffloaat jjourrneyy;方法的定義義用“修飾符符+返回回標志+方法名名”和一對對小括號號來描述述,例如如:publiic vvoidd drriveerAtt(innt s

24、speeed) / ddrivverAAt()其中屬性定定義和方方法的定定義及其其實現(xiàn)都都應(yīng)該放放在大括括號內(nèi),而而代碼子子句的實實現(xiàn)都需需要放在在方法的的小括號號內(nèi),這這樣就定定義了一一個類。值得注意的的是drriveerAtt()方方法,次次方法提提供了一一個入口口參數(shù)“speeed”,這是是為司機機向機動動車發(fā)布布命令留留下了入入口。當當司機調(diào)調(diào)用機動動車對象象要求以以某一速速度行駛駛時,將將調(diào)用ddrivverAAt()方方法。這這個方法法在判定定司機要要求的速速度小于于最大行行駛速度度之后指指定速度度進行行行駛,否否則將行行駛速度度定為440。if(sppeedd=660) drri

25、veerSppeedd=400;else drriveerSppeedd=sppeedd;P25 程程序清單單3.22 “vehhiclleDrriveer.jjavaa”文本文文件publiic cclasss vvehiicleeDriiverr puubliic SStriing namme;/定義義司機的的名字/*vehiicleeDriiverr類構(gòu)造造函數(shù)*/ puubliic vehhiclleDrriveer()name = TOMM;/veehiccleDDrivver() /*vehiicleeDriiverr類對象象的woork方方法*/publiic vvoidd wo

26、ork() veehiccle v = neew vvehiiclee();/生生成veehiccle類類的對象象v d.driiverrAt(445);/調(diào)調(diào)用v對對象所固固有的ddrivverAAt()方方法/woork()publiic sstattic voiid mmainn(Sttrinng aarr )/生生成ehhiclleDrriveer類的的對象vvd ehhiclleDrriveer vvd = neew eehiccleDDrivver(); vdd.woork(); /調(diào)調(diào)用vdd對象所所固有的的worrk()方方法/maain()/*vvehiicleeDriive

27、rr*/“vehiicleeDriiverr”類定義義了司機機姓名這這一屬性性,并在在其構(gòu)造造函數(shù)vvehiicleeDriiverr()方方法中設(shè)設(shè)定了司司機的名名字為“TOMM”,同時時還設(shè)定定了司機機的工作作行為方方法woork(),在在這個方方法中,首首先生成成了“vehhiclle”類的一一個對象象v,接接著這個個對象調(diào)調(diào)用了“vehhiclle”類的實實例所固固有的方方法drriveerAtt(),而而且還對對行駛的的速度進進行了賦賦值,用用來告訴訴機動車車的對象象v需要要按照445單位位(單位位具體是是什么需需要根據(jù)據(jù)實際代代碼所要要解決的的問題來來定)的的速度行行駛。這這就是在

28、在worrk()方方法中完完成了對對象的生生成,以以及對象象之間的的調(diào)用和和消息傳傳遞。和“vehhiclle”類不同同,“vehhiclleDrriveer”類多了了一個靜靜態(tài)的mmainn()方方法。在在Javva編程程中規(guī)定定,當一一個類有有maiin()方方法時,它它就可以以被作為為應(yīng)用程程序進行行使用。而而此例的的maiin()方方法中,生生成了一一個“vehhiclleDrriveer”類的對對象vdd,這一一操作使使用程序序中的代代碼子句句:vehiccleDDrivver vd = nnew vehhiclleDrriveer();來完成。它它的含義義是指生生成了一一個名字字叫

29、TOOM的司司機對象象。vdd.woork()是是表明了了司機開開始工作作,工作作的內(nèi)容容就是:以455單位的的速度駕駕駛一部部已經(jīng)行行駛了1100.3kmm的四輪輪機動車車。P26 因因為只有有“vehhiclleDrriveer”類文件件有maain()方方法,所所以只能能執(zhí)行它它一個。用用Javva工具具來執(zhí)行行。命令令如下:java vehhiclleDrriveer(自己注:沒有方方法maain()就就不能執(zhí)執(zhí)行)提示:如果果需要編編譯一個個目錄下下的多個個“.jaava”文件,可可以分別別用jaavacc編譯器器進行編編譯,也也可以采采用“javvac *.jjavaa”命令來來一

30、起編編譯,這這樣節(jié)約約了時間間。如果果“.jaava”文件很很多而且且代碼編編寫錯誤誤可能會會比較多多,則不不提倡用用此種方方法,因因為這樣樣可能會會產(chǎn)生很很多編譯譯錯誤信信息,反反而影響響了效率率。P27 在在Javva術(shù)語語中,祖祖先稱之之為“超類”,而子子孫稱之之為“子類”?!俺悺笔恰白宇悺钡淖蛹?。P29 如如果要調(diào)調(diào)用一個個對象的的方法,JJavaa解釋程程序會自自動檢查查定義該該對象的的類中的的方法,如如果該類類有這個個方法,則則Javva解釋釋程序會會自動調(diào)調(diào)用它。如如果在這這個類中中沒有找找到指定定的方法法,則JJavaa解釋器器會自動動尋找該該類的超超類中的的方法,依依此類

31、推推,直到到找到這這個方法法調(diào)用它它。如果果查找所所有的關(guān)關(guān)于該類類的超類類而最終終也沒找找到這個個方法,JJavaa解釋器器才會報報告找不不到該方方法。查查找方法法的順序序是從底底層到頂頂層,也也就是說說按照從從子類到到超類順順序的。P30 接接口:盡管單重繼繼承比較較簡單好好用,而而且也使使我們比比較容易易理解和和設(shè)計類類之間以以及類所所實現(xiàn)的的功能之之間的關(guān)關(guān)系。然然而,它它也有一一定的限限制,特特別是當當需要從從類層次次結(jié)構(gòu)的的不同分分支重復(fù)復(fù)類似特特性的時時候,JJavaa通過接接口解決決了這一一問題。Java中中的接口口(Innterrfacce)比比類更抽抽象。它它只定義義了一些

32、些公用的的行為或或操作而而無任何何的實現(xiàn)現(xiàn)。而這這類的行行為或操操作,可可被稱為為抽象方方法(AAbsttracct MMethhod)。因因此任何何的類,只只要它需需要皆可可直接加加入其所所需的IInteerfaace。同同時一個個類雖然然僅可繼繼承一個個超類,但但它卻可可實現(xiàn)多多個接口口,而這這樣的方方法在JJavaa的程序序?qū)崿F(xiàn)里里扮演了了一個相相當重要要的角色色。一個超類AA有兩個個子類分分別是CC和D。其其中C有有著C11和C22兩種特特性,而而D有著著D1和和D2兩兩種特性性。現(xiàn)在在想創(chuàng)建建一個新新的類EE,它有有C的CC1屬性性和D的的D1屬屬性,因因為Jaava是是采用單單重繼

33、承承的,而而且C和和D是兩兩個不同同的分支支,所以以不可能能像多重重繼承那那樣用EE來同時時繼承CC和D。接接口的出出現(xiàn)可以以解決這這個問題題。這種種解決方方法之一一就是創(chuàng)創(chuàng)建一個個接口來來定義CC1和CC2的行行為,然然后在創(chuàng)創(chuàng)建一個個類來實實現(xiàn)這個個接口從從而生成成一個新新的類。可以看出接接口的出出現(xiàn)是對對類的一一個有效效補充,兩兩者幾乎乎可以同同等對待待,它們們之間的的差別就就在于接接口不能能像類那那樣產(chǎn)生生實例。P31 接接口的創(chuàng)創(chuàng)建:程序清單33.4 “E.jjavaa”文本文文件publiic iinteerfaace Epubliic sstattic finnal intt E

34、11 = 1000; /E11屬性publiic vvoidd C11(); /C1行行為方法法publiic vvoidd D11(); /D1行行為方法法/*EE*/程序清單33.4中中定義了了E接口口,它和和定義一一個類很很相似,只只是在定定義方法法之后沒沒有方法法的具體體實現(xiàn)操操作,而而是以一一個分號號就結(jié)束束了定義義。實際際上這就就是進行行了接口口的行為為方法的的聲明。接接口沒有有maiin()方方法,也也不能生生成新的的實例,但但是它編編寫之后后也是保保存成“.jaava”文件。保保存的文文件名和和接口名名保持一一致。在在通過jjavaac編譯譯器編譯譯之后也也生成“.cllass

35、s”文件,這這一點也也和類相相似。P31 接接口的擴擴展;接口的擴展展也采用用關(guān)鍵字字“exttendds”來進行行實現(xiàn)。所所以假設(shè)設(shè)創(chuàng)建一一個F接接口,它它是繼承承E接口口的。則則可以用用以下代代碼來聲聲明。publiic iinteerfaace F eexteendss E/接接口F的的內(nèi)容 如果需要創(chuàng)創(chuàng)建一個個G接口口,它是是分別繼繼承E接接口和接接口的,則則可以用用以下代代碼來聲聲明。publiic iinteerfaace G eexteendss E,F(xiàn)F/接接口G的的內(nèi)容在多重繼承承中被繼繼承的父父類接口口之間用用逗號隔隔開。P32 接接口的實實現(xiàn):使用接口來來定義新新的類,需

36、需要用“impplemmentts”來完成成。例如如編寫一一個Ecclasss類,它它有C11行為方方法和DD1行為為方法,則則只要實實現(xiàn)E接接口就可可以了。EEclaass類類程序見見程序清清單3.5.程序清單33.5 “Ecllasss.jaava”文本文文件publiic cclasss EEclaass impplemmentts EEpubliic vvoidd C11()/實實現(xiàn)C11行為方方法 Syysteem.oout.priintlln(C1方方法實現(xiàn)現(xiàn));/C11()publiic vvoidd D11()/實實現(xiàn)D11行為方方法 Syysteem.oout.priintl

37、ln(D1方方法實現(xiàn)現(xiàn));/D11()/*EEclaass*/代碼“puubliic cclasss EEclaass impplemmentts EE”不僅聲聲明了一一個類EEclaass,同同時還聲聲明這個個類要實實現(xiàn)E接接口,這這里用到到了關(guān)鍵鍵字“impplemmentts”,而且且在這個個類中重重寫了CC1()和和D1()兩兩個方法法,編寫寫了代碼碼進行了了實現(xiàn)。這這樣就完完成了EEclaass類類的創(chuàng)建建工作。這這個類可可以被其其他子類類所繼承承,并且且也可以以生成這這個類的的對象。提示:讀者者也許會會認為可可以直接接編寫EEclaass類類而不用用實現(xiàn)接接口,這這樣自然然省去了了

38、接口的的定義,但但是在實實際應(yīng)用用中,接接口恰恰恰是非常常有用的的,在接接口中會會定義很很多方法法,不同同的類可可以按照照自身的的性質(zhì)繼繼承接口口,各取取所需,實實現(xiàn)不同同的方法法,這樣樣編寫出出的類集集合的層層次才會會更加清清楚,提提高效率率。一個要編寫寫的類可可以實現(xiàn)現(xiàn)多個接接口,但但是要確確保所有有接口的的方法都都被實現(xiàn)現(xiàn),盡管管有些接接口的方方法不需需要,也也要編寫寫一個沒沒有代碼碼的空方方法進行行實現(xiàn)。例例如Ecclasss類中中就需要要將E接接口中聲聲明的方方法一一一實現(xiàn),如如果缺少少了E11()方方法或者者是D11()方方法,EEclaass類類均不能能編譯成成功。另另外在實實現(xiàn)

39、接口口中定義義的類之之后,所所編寫的的類也可可以編寫寫自己的的方法。例例如編寫寫一個EEtottalCClasss類,這這個類不不但實現(xiàn)現(xiàn)了E接接口和MM接口,同同時也有有自己的的方法EE1()。程程序清單單3.66給出了了M接口口的定義義,程序序清單33.7給給出了完完整的EEtottalCClasss類的的定義。程序清單33.6 “M.jjavaa”文本文文件publiic cclasss EEtottalCClasss iimpllemeentss E,MMpubliic vvoidd C11()/實實現(xiàn)C接接口C11行為方方法Systeem.oout.priintlln(C接口口C1行

40、行為方法法實現(xiàn));/C11()publiic vvoidd D11()/實實現(xiàn)D接接口D11行為方方法 Syysteem.oout.priintlln(D接口口D1行行為方法法實現(xiàn));/D11()publiic vvoidd M11()/實實現(xiàn)M接接口M11行為方方法 Syysteem.oout.priintlln(M接口口M1行行為方法法實現(xiàn));/M11()publiic vvoidd E11()/自自身的方方法實現(xiàn)現(xiàn) Syysteem.oout.priintlln(自身的的方法實實現(xiàn));/E11()publiic sstattic voiid mmainn(Sttrinng aa ) Et

41、totaalCllasss e = nnew EtootallClaass(); e.C1(); e.D1();e.M1();e.E1();/maain()/*EEtottalCClasss*/程序清單33.7中中用代碼碼“pubblicc cllasss EttotaalCllasss immpleemennts E,MM”完成了了“EtootallClaass”類的聲聲明,同同時也聲聲明它要要實現(xiàn)EE接口和和M接口口,多個個接口中中用逗號號隔開。第4章 JJavaa語言基基礎(chǔ)P35 變變量的定定義包括括變量名名、變量量類型和和作用域域幾個部部分。P36 變變量的作作用域是是指一個個變量可可

42、以被訪訪問的代代碼程序序段。聲聲明一個個變量的的同時也也就指明明了變量量的作用用域。按按作用域域來分,變變量可以以有下面面幾種:局部變變量、類類變量、方方法參數(shù)數(shù)、例外外處理參參數(shù)。每每一種變變量都有有其一定定的應(yīng)用用場合和和作用域域。a局部變量量在方法法或方法法的一塊塊代碼中中聲明,它它的作用用域為它它所在的的代碼塊塊,即整整個方法法或方法法中的某某塊代碼碼。b類變量是是在類的的開始聲聲明中創(chuàng)創(chuàng)立,而而不在類類的某個個方法中中聲明,因因此它的的作用域域是整個個類。c方法參數(shù)數(shù)傳遞給給方法,它它的作用用域就是是這個方方法。d例外處理理參數(shù)傳傳遞給例例外處理理代碼,它它的作用用域就是是例外處處理

43、部分分。P36 SStriing表表示字符符型常量量。P37 局局部變量量在創(chuàng)建建之后必必須進行行變量賦賦值,否否則程序序?qū)o法法編譯,所所以給局局部變量量賦值是是編程者者一個良良好的習(xí)習(xí)慣。這這種習(xí)慣慣的延伸伸是給類類變量進進行初始始值賦值值,盡管管有時候候類變量量對初始始值賦值值不是那那么重要要。P37 常常量:常量是一種種特殊的的變量,所所以它的的聲明是是和變量量的聲明明一致的的,只是是需要在在變量的的聲明類類型前加加“finnal”關(guān)鍵字字來表明明此變量量是一個個常量,同同時一個個常量需需要進行行初始值值的確定定。例如如創(chuàng)建數(shù)數(shù)學(xué)公式式中的圓圓周率這這一常量量。finall dooub

44、lle PPI = 3.141159226;常量的名稱稱一般都都是大寫寫的,例例如圓周周率一般般用大寫寫“PI”而不用用小寫的的“pi”。但是是這并不不是必須須的,這這只是一一個良好好的Jaava編編程習(xí)慣慣,看到到全部都都是大寫寫的變量量的時候候會想到到這可能能是一個個常量,從從而使程程序更加加的容易易被理解解。P38 基基本數(shù)據(jù)據(jù)類型:整型變量的的類型有有bytte、sshorrt、iint和和lonng 4種。iint類類型是最最常使用用的一種種整數(shù)類類型。它它所表示示的數(shù)據(jù)據(jù)范圍為為64位位處理器器。但對對于大型型計算,常常會遇到到很大的的整數(shù),超超出innt類所所表示的的范圍,這這時

45、要使使用loong類類型。由由于不同同的機器器對于多多字節(jié)數(shù)數(shù)據(jù)的存存儲方式式不同,可可能是低低字節(jié)向向高字節(jié)節(jié)存儲,也也可能是是從高字字節(jié)向低低字節(jié)存存儲,這這樣,在在分析網(wǎng)網(wǎng)絡(luò)協(xié)議議或文件件格時,為為了解決決不同機機器上的的字節(jié)存存儲順序序問題,用用bytte類型型來表示示數(shù)據(jù)是是合適的的。而通通常情況況下,由由于其表表示的數(shù)數(shù)據(jù)范圍圍很小,容容易造成成溢出,應(yīng)應(yīng)避免使使用。sshorrt類型型則很少少使用,它它限制數(shù)數(shù)據(jù)的存存儲為先先高字節(jié)節(jié),后低低字節(jié),這這樣在某某些機器器中會出出錯。實實際中使使用哪一一個數(shù)據(jù)據(jù)類型完完全取決決于整數(shù)數(shù)的實際際大小,恰恰當?shù)倪x選取數(shù)據(jù)據(jù)類型可可以節(jié)省省

46、空間,提提高程序序的運行行效率。實數(shù)型數(shù)據(jù)據(jù)類型有有flooat和和douublee兩種,它它們分別別代表著著單精度度類型和和雙精度度類型。char字字符型數(shù)數(shù)據(jù)類型型用于存存儲單個個字符,例例如字母母、數(shù)字字、標點點符號和和其他符符號。booleean布布爾型數(shù)數(shù)據(jù)類型型用于存存放trrue或或者faalsee關(guān)鍵字字。以上8種數(shù)數(shù)據(jù)類型型為Jaava語語言中基基本的數(shù)數(shù)據(jù)類型型。同時時Javva中還還有一些些諸如CCharr和Boooleean的的類,它它們的拼拼寫和基基本的數(shù)數(shù)據(jù)類型型基本一一致,只只是首寫寫字母大大小寫不不同。因因為Jaava編編程中是是區(qū)分大大小寫的的,所以以它們有有

47、不同的的功能,從從屬性上上就可以以看出,一一方面是是數(shù)據(jù)類類型,另另一方面面是類。另外需要重重點提出出的是SStriing數(shù)數(shù)據(jù)類型型,它是是“javva.llangg.Sttrinng”類的對對象類型型。它表表示一個個順序不不可變的的字符序序列,該該數(shù)據(jù)類類型在JJavaa編程中中起著相相當大的的作用,但但是它不不是基本本的數(shù)據(jù)據(jù)類型。P38 數(shù)數(shù)據(jù)類型型值: 表4-33 常用用的數(shù)據(jù)據(jù)類型數(shù)據(jù)類型形式booleeantrue或或者faalseeint十進制:數(shù)數(shù)字09110999十六進制:0 x或或0 x后后面跟009、AAF,如0 xx9AFFlong同int數(shù)數(shù)據(jù)類型型,但后后面跟11

48、或者LL,如00 x9AAFLfloatt數(shù)字加小數(shù)數(shù)點,后后面跟ff或者是是F,如如3.114fdoublle數(shù)字加小數(shù)數(shù)點或者者是科學(xué)學(xué)計數(shù)法法,如33.144、3.14+15FFchar引號內(nèi)的AASCIII碼,如如S、qStrinng雙引號內(nèi)的的一列字字符,如如LaaoHuuP39 數(shù)數(shù)值型數(shù)數(shù)據(jù)間的的混合運運算:整型、實型型、字符符型數(shù)據(jù)據(jù)可以混混合運算算。在運運算過程程中當遇遇到不同同類型的的數(shù)據(jù)時時,一般般是先轉(zhuǎn)轉(zhuǎn)換成同同一數(shù)據(jù)據(jù)類型,然然后再進進行運算算。轉(zhuǎn)換換是按從從低級到到高級的的轉(zhuǎn)換原原則。轉(zhuǎn)換規(guī)則如如下:(bytee或shhortt)opp inntintt(bytee

49、或shhortt或innt)oop llongglonng(bytee或shhortt或innt或llongg)opp flloattflooat(bytee或shhortt或innt或llongg或flloatt)opp dooublledouubleechar op inttint其中“opp”符號左左邊的表表示主動動參與運運算的數(shù)數(shù)據(jù)類型型,“op”為運算算符(如如加、減減、乘、除除等),“op”符號右邊的表示被動參與運算的數(shù)據(jù)類型,“”符號右邊的是轉(zhuǎn)換完的數(shù)據(jù)類型。當需要將高高級數(shù)據(jù)據(jù)轉(zhuǎn)換成成低級數(shù)數(shù)據(jù)時,需需用到強強制類型型轉(zhuǎn)換,例例如將ffloaat型數(shù)數(shù)據(jù)變量量轉(zhuǎn)換成成intt型

50、數(shù)據(jù)據(jù)變量,則則:floatt f;int ii = (innt)ff;提示:將高高級數(shù)據(jù)據(jù)轉(zhuǎn)換成成低級數(shù)數(shù)據(jù)可能能會導(dǎo)致致數(shù)據(jù)的的丟失,例例如當ff的值是是3.114的時時候,將將其轉(zhuǎn)換換成整型型類型ii之后,ii的值為為3,這這一點在在強制轉(zhuǎn)轉(zhuǎn)換的過過程中需需要注意意。P40 注注釋的語語法:Java編編程中注注釋有33種方法法,它們們適用于于不同的的場合。 /ccommmentt 從“/”到語句句末尾的的所有內(nèi)內(nèi)容都屬屬于說明明語句,只只能用于于單行。 /*ccommmentt*/ 從“/*”到“*/”之間的的語句為為說明語語句,可可以用于于多行。 /*commmennt*/ 用于于建檔

51、的的說明語語句,其其內(nèi)容是是“/*”到“*/”之間的的。其中commmennt為程程序中的的注釋信信息,“/*commmennt*/”語句是是特殊的的說明語語句,稱稱為Jaavaddoc說說明語句句,是根根據(jù)JSSDK工工具命名名的,它它的作用用和“/*ccommmentt*/”語句相相似。注釋語句在在程序運運行階段段將被忽忽視,所所以不影影響程序序的進行行。但是是“/*/”語句不不能采用用嵌套形形式,即即“/*/”語句內(nèi)內(nèi)再一次次進行“/*/”語句的的注釋,它它的形式式為“/* /* */ */”。這樣樣第一個個“*/”會終止止說明語語句,導(dǎo)導(dǎo)致后面面的說明明注釋語語句無效效而在編編譯或者者

52、是運行行中執(zhí)行行。P40 至至此已經(jīng)經(jīng)介紹了了Javva語言言的關(guān)鍵鍵字、變變量、常常量、數(shù)數(shù)據(jù)類型型和注釋釋等內(nèi)容容,這些些內(nèi)容實實際上在在Javva編程程中都是是很細小小的部分分,但是是它們卻卻是Jaava編編程的基基礎(chǔ),正正確的理理解和運運用它們們就是奠奠定了應(yīng)應(yīng)用Jaava代代碼編程程的基石石。程序序4.11對這些些方面進進行了綜綜合運用用,讀者者可以針針對程序序的具體體細節(jié)來來對應(yīng)學(xué)學(xué)習(xí)以上上的內(nèi)容容。程序清單44.1 “dattaInnit.jaava”文本文文件/*本例介紹紹和運用用Javva關(guān)鍵鍵字、變變量、常常量、數(shù)數(shù)據(jù)類型型和注釋釋等方面面內(nèi)容*并且采用用它生成成一個標標準

53、的jjavaadocc文檔*autthorr Tiigerr*verrsioon 11.0*/publiic cclasss ddataaIniit/*主函數(shù)、完完成所有有功能。*parram Strringg arrg*retturnn 無*thrrowss 無*/publiic sstattic voiid mmainn(Sttrinng aarg )/單行行注釋,描描述下一一行子句句功能。定定義整型型變量int roaadLeengtth = 10000;/定義義單精度度數(shù)據(jù)類類型。進進行初始始化賦值值,數(shù)字字加小數(shù)數(shù),后面面跟ffloaat rroaddAdddLenngthh = 5

54、000.1ff;/定義義雙精度度常量圓圓周率PPIfinaal ddoubble PI = 33.144159926;/定義義字符串串對象變變量Striing queery = abccdeffg;/*多行注釋釋,此為為第一行行以上用到了了pubblicc、cllasss、sttatiic、vvoidd、innt、ffloaat、ffinaal、ddoubble等等關(guān)鍵字字此為第三三行*/返回回實型的的道路總總長度floaat fflRooadTTotaalLeengtth = rooadLLenggth + rroaddAdddLenngthh;/返回回整型的的道路總總長度int inttR

55、oaadTootallLenngthh = roaadLeengtth + (iint)rroaddAdddLenngthh;/maain()/*ddataaIniit*/P42 運運算符首首先是特特殊符號號,它主主要由算算術(shù)運算算符、關(guān)關(guān)系運算算符、布布爾運算算符、字字符串操操作符、賦賦值操作作符、特特殊操作作符等組組成。P44 布布爾型操操作符作作用于布布爾操作作數(shù)并返返回布爾爾值,用用以實現(xiàn)現(xiàn)標準的的布爾代代數(shù)運算算。其基基本運算算為ANND、OOR、NNOT、和和XORR(異或或)。 ANDD是二元元“布爾與與”操作,其其符號是是“&”。當兩兩個布爾爾型操作作數(shù)都為為truue的時時候

56、返回回的結(jié)果果為trrue。如如果兩個個布爾型型操作數(shù)數(shù)至少有有一個為為fallse,那那么返回回的結(jié)果果就為ffalsse。 OR是是二元“布爾或或”操作,其其符號是是“|”。當兩兩個布爾爾型操作作數(shù)都為為fallse的的時候返返回的結(jié)結(jié)果為ffalsse。如如果兩個個布爾型型操作數(shù)數(shù)至少有有一個為為truue,那那么返回回的結(jié)果果就為ttruee。 NOTT是“否”操作,其其符號是是“!”。當操操作數(shù)是是truue的時時候,則則返回的的結(jié)果是是fallse。當當操作數(shù)數(shù)是faalsee的時候候,則返返回的結(jié)結(jié)果是ttruee。 XORR是二元元“異或”操作,其其符號是是“”。當兩兩個布爾爾

57、型操作作數(shù)都為為truue或者者都為ffalsse的時時候,返返回結(jié)果果是faalsee。當兩兩個布爾爾型操作作數(shù)一個個為trrue而而另外一一個為ffalsse的時時候,返返回的結(jié)結(jié)果為ttruee。另外布爾型型操作符符還有“&”(條件件與)操操作符和和“|”(條件件或)操操作符,它它們的運運算情況況和“布爾與與”和“布爾或或”相似,只只不過前前兩個操操作符是是面向條條件的真真假來判判斷得到到結(jié)果的的,“布爾與與”和“布爾或或”是根據(jù)據(jù)操作數(shù)數(shù)的真假假來判斷斷結(jié)果的的,在實實際情況況中“條件與與”操作符符和“條件或或”操作符符使用的的頻率比比較高。P45 字字符串操操作符:字符串操作作符只有

58、有一個“+”稱之為為結(jié)合操操作符。它它用于將將字符串串連接結(jié)結(jié)合在一一起生成成一個新新的字符符串,它它的優(yōu)先先級是55。例如如:Strinng ssOldd = I;Strinng ssNeww = sOlld+am a bboy;sNew是是一個新新的字符符串,其其結(jié)果是是“I aam aa booy”。如果果一個字字符串SStriing和和一個對對象Obbjecct用“接合”操作符符進行連連接,則則Javva自動動調(diào)用對對象的ttoSttrinng()方方法,這這樣兩者者相加返返回的還還是一個個字符串串變量。例例如:Strinng ssOldd = I;Strinng ooldOObjee

59、ct ;Strinng ssNeww = sOlld+ooldOObjeect;P46 特特殊操作作符:此外還有測測試操作作符和生生成運算算符。測試操作符符的符號號是“insstannceoof”,它的的作用是是判斷一一個變量量是否是是某一個個類的實實例,返返回是布布爾型變變量。例例如:booleean b1,bb2,bb3;persoon pp;man mm;p = nnew perrsonn();m = nnew mann();b1 = p iinsttancceoff peersoon;b2 = p iinsttancceoff peersoon;b3 = p iinsttancceof

60、f peersoon;b1將得到到truue。bb2將返返回faalsee。如果果mann類是ppersson類類的子類類,則bb3返回回truue,否否則返回回fallse。測測試操作作符的級級別是77。生成預(yù)算副副的符號號是“neww”,它的的作用是是生成類類的新的的對象,一一般在實實例化對對象或者者是構(gòu)造造函數(shù)時時用。例例如聲明明并生成成一個ppersson類類的對象象p:persoon pp = neww peersoon();P46 修修飾符:修飾符是影影響類、變變量、方方法以及及生存空空間、行行為和訪訪問性的的關(guān)鍵字字。表44-9列列出了類類、方法法和變量量可用的的常用修修飾符。表

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論