java就業(yè)培訓(xùn)晰版第三章面向?qū)ο笊蟔第1頁(yè)
java就業(yè)培訓(xùn)晰版第三章面向?qū)ο笊蟔第2頁(yè)
java就業(yè)培訓(xùn)晰版第三章面向?qū)ο笊蟔第3頁(yè)
java就業(yè)培訓(xùn)晰版第三章面向?qū)ο笊蟔第4頁(yè)
java就業(yè)培訓(xùn)晰版第三章面向?qū)ο笊蟔第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

3章面向?qū)ο螅ㄉ鲜敲嫦驅(qū)ο螅@是一個(gè)相對(duì)概念,是相對(duì)面向過(guò)程而言的。就象要理解什么是,要先理解面向過(guò)CWindows(struct)來(lái)實(shí)現(xiàn),只要在結(jié)構(gòu)體中使一個(gè)Windows窗口進(jìn)行,如隱藏窗口,移動(dòng)窗口,最小化窗口等等,我們要為每個(gè)操面向?qū)Ψ庋b繼承多態(tài)精要放在實(shí)踐和思考上,通過(guò)大量實(shí)踐去理解和掌握。如果讀者到現(xiàn)在還不能完全明白面(Instances600”s600”汽車被改裝后,就會(huì)影響到以后所有出廠的“奔馳s600”汽車。類的定{intage;{System.out.println(“oh,mygod!myageis“+}}其中,定義了一個(gè)類,該類有一個(gè)屬性age,一個(gè)方法shout。類的屬性也叫類成員變量,類的方法也叫類的成員函數(shù)。一個(gè)類中的方法可以直接同類中的任何成員(包括成員變量和成員函數(shù)如shout方法可以直接同一個(gè)類中的age變量。腳下留心:如果一個(gè)方法中有與成員變量同名的局部變量,該方法中對(duì)這個(gè)變量名的{intage;//這是一個(gè)成員變量voidshout(){System.out.println(“oh,mygod!myageis“+}}在這里,shoutSystem.out.println(“oh,mygod!myageisage);語(yǔ)句所的age就不再是成員變量age,而是在shout方法中定義的局部變量age。對(duì)象的產(chǎn)生與使p1= 等號(hào)左邊以類名做為變量類型定義了一個(gè)變量p1,來(lái)指向等號(hào)右邊通過(guò)new關(guān)鍵字創(chuàng)建的一個(gè)類的實(shí)例對(duì)象,變量p1就是對(duì)象的句柄,對(duì)象的句柄是在棧中(條語(yǔ)句執(zhí)行完后的內(nèi)存狀態(tài)如圖3.2所示:000Allreference括屬性和方法下面的程序代碼演示了類對(duì)象的產(chǎn)生和使用方式。class{publicstaticvoidmain(String[]{p1= p2=new p1.age=-30;p1.shout();}}oh,mygod!myageis-30oh,mygod!myageis0類的對(duì)象句柄p1、p2,分別指向這兩個(gè)對(duì)象。接著,程序調(diào)用了p1和p2的方法和會(huì)被所有的對(duì)象共享,改變了p1的age屬性,不會(huì)影響p2的age屬性。調(diào)用某個(gè)對(duì)象的方法時(shí),該方法內(nèi)部所的成員變量,是這個(gè)對(duì)象自身的成員變量。上面程序運(yùn)行的內(nèi)存布局如圖3.3所示:有變量指向某個(gè)對(duì)象時(shí),這個(gè)對(duì)象就會(huì)變成,不能再被使用。我們通過(guò)分析下面的幾{p1= }就會(huì)變成,因?yàn)檫@個(gè)對(duì)象的句柄p1已超過(guò)其作用域,p1已經(jīng)無(wú)效,對(duì)象就不再被任何句柄了。如圖3.4所示:{p1=new p1=null;}p1nullp1為空,也就是說(shuō)p1不再指向任何對(duì)象,這個(gè)對(duì)象也就成了孤兒,不再被任何句柄,變成了。如圖3.5所示:{p1=new p2=p1;p1=}執(zhí)行完p1=null;后,產(chǎn)生的 直到p2超出其作用域而無(wú)效,產(chǎn)生的對(duì)象才會(huì)變成 。如圖3.6所示:

于比較兩個(gè)變量的值是否相等,equals()方法用于比較兩個(gè)對(duì)象的內(nèi)容是否一致。我們面用于比較兩個(gè)數(shù)據(jù)類型變量的情況,對(duì)初學(xué)者來(lái)說(shuō),很容易造成一些,我們來(lái)看看下class{publicstaticvoidmain(String[]{Stringstr1=newStringstr2=newString("abc");Stringstr3=str1;}}str1str2str1str2的。str1str2代表的是同一個(gè)人,所以,它們是相等的。這個(gè)過(guò)程如圖3.7所示。我們下面再來(lái)看看使用equals()方法的情況。class{publicstaticvoidmain(String[]{Stringstr1=newString("abc");Stringstr2=newStringstr3=System.out.println("str1equalstr2");System.out.println("str1notequalstr2");System.out.println("str1equalstr3");System.out.println("str1notequal}}str1equalstr2str1equal多學(xué)兩招Arrays.sort方法對(duì)數(shù)組進(jìn)行排序,象的內(nèi)容是否相等的問(wèn)題,查看JDK文檔,如圖3.8所示 對(duì)象象的方法。這樣的對(duì)象叫做對(duì)象,我們把前面的程序中的代碼: 數(shù),要接收一個(gè)類對(duì)象作為參數(shù),函數(shù)定義如下:publicstaticvoid {} 的成員變量age,并且使用了p1=new p1.age=-30;{privateintage;publicvoidshout(){System.out.println(age);//這一句沒(méi)有錯(cuò)}}class{publicstaticvoidmain(String[]{ ().age=-}} .java:13:agehasprivateaccessin ().age=-30;^1錯(cuò)誤的意思是:age是類里的私有變量,不能在其他類中直接調(diào)用和修改。雖然在類Test中用的是“對(duì)象.對(duì)象成員”的格式去類中的age屬性,這是從其他類另外一個(gè)類實(shí)例對(duì)象的成員的必要格式,但這也是不行的,因?yàn)橐粋€(gè)類里的成員(包括明白了private關(guān)鍵字,大家就自然明白了public關(guān)鍵字,如果用public修飾類里的成員,那么,這些成員就變成公有的,并可以在任意類中這種成員,當(dāng)然,要在一個(gè)類外為了實(shí)現(xiàn)良好的封裝性,我們通常將類的成員變量為private,再通過(guò)public的方法 面的代碼來(lái)修改類的定義。{privateintpublicvoidsetAge(int{if(i<0||i>130)age=}publicint{return}publicclass{publicstaticvoidmain(String{p1= }}這段程序的類里,成員變量age被定義成了私有(private)變量,這樣就只有該()供外部調(diào)用者,setAge()方法可以接受一個(gè)外部調(diào)用者傳入的值,當(dāng)此值超出0到130的范圍就被視為,就不再繼續(xù)對(duì)age變量進(jìn)行賦值操作,如果在此范圍內(nèi)就被賦值給成員變量age,而getAge()方法可以給外部調(diào)用者返回age變量的值,外部調(diào)用者只能這兩個(gè)一個(gè)或多個(gè)公有(public)方法實(shí)現(xiàn)對(duì)該成員變量的或修改,這種方式就被稱為封裝。實(shí)多學(xué)兩招請(qǐng)問(wèn)第一個(gè)對(duì)象的方法中,能否以“第二個(gè)對(duì)象.成員”的格式第二個(gè)對(duì)象中的那個(gè)class{privateintpublicstaticvoidmain(String[]{newA().func(new}publicvoidfunc(A{}}newA().func(new個(gè)對(duì)象的private成員變量x。構(gòu)造函數(shù)的定義與作{ {System.out.println("theconstructor1is}privateintage=10;publicvoidshout(){System.out.println(“ageis}}class{publicstaticvoidmain(String[]{ }}theconstructor1iscalling!ageis10theconstructor1iscalling!ageis10theconstructor1iscalling!ageis10 就是“構(gòu)造方法”。關(guān)于這個(gè)方法,有幾點(diǎn)不同于一般方法的特征:腳下留心:在構(gòu)造方法里不含返回值的概念是不同于“void”的,對(duì)于“publicvoid{privateStringprivateintage=-1; {} (String{name=System.out.println(“nameis} (Stringn,int{name=n;age=a;System.out.println(”constructor3iscalling”);System.out.println(“nameandageis”+name+”;”+age);}publicvoid{System.out.println(“l(fā)istento}}class{publicstaticvoidmain(String[]{ }}在類里我們又添加了兩個(gè)構(gòu)造方法,其中一個(gè)構(gòu)造方法接受外部傳入的,再賦值給類的成員變量,另外一個(gè)構(gòu)造方法接受外部傳入的和,再賦值給類的成員變量。在Test.main方法中,我們用new關(guān)鍵字產(chǎn)生了三個(gè)的實(shí)例對(duì)象,產(chǎn)生對(duì)象new類名(參數(shù)列表constructor1iscallinglistentome!!constructor2iscallingnameisJacklistentome!!constructor3iscallingnameandageisTom;18listentome!!直接給對(duì)人的和賦值,我們就可以使用下面的方式去產(chǎn)生這個(gè) 而不必先用 調(diào)用指定類的構(gòu)造方法,最后將實(shí)例對(duì)象的首地址賦值給變量p3。 了一個(gè)類的實(shí)例對(duì)象。此時(shí)的內(nèi)存狀態(tài)如圖3.9所示:接著,調(diào)用相應(yīng)的構(gòu)造方法,構(gòu)造方法接受外部傳入的和,在執(zhí)行構(gòu)造方法中的程序類中的:privateStringname=”unknown顯式初始化privateintage=-1;//顯式初始化然后,執(zhí)行構(gòu)造方法中的代碼,用從外部接受到的和對(duì)成員變量重新賦值。此時(shí)的內(nèi)存狀態(tài)如圖3.11所示:構(gòu)造方法的一些class{}class{public}對(duì)于第一種寫法,類雖然沒(méi)有構(gòu)造方法,但我們可以用newConstruct()語(yǔ)句來(lái)創(chuàng)建Construct類的實(shí)例對(duì)象。class{intpublicConstruct(int{age=}}這時(shí)系統(tǒng)就不再產(chǎn)生默認(rèn)的構(gòu)造方法,我們?cè)倬帉懸粋€(gè)調(diào)用Construct類的程序。class{publicstaticvoidmain(String[]{Constructc=new}}E:\TestConstruct.java:13:cannotresolvesymbolsymbol:constructorConstruct()location:classConstructConstructc=newConstruct();^1newConstructConstruct{ {System.out.println("theconstructor1is}}class{publicstaticvoidmain(String[]{ }} ()hasprivateaccessin ^1public的,因?yàn)樗鼈冊(cè)趯?duì)象產(chǎn)生時(shí)會(huì)被系統(tǒng)自動(dòng)調(diào)用的。this句class{Stringname;publicA(Stringx){name=}publicvoid{System.out.println(“func1of”+name+“is}publicvoid{Aa2=new}}class{publicstaticvoidmain(String[]{Aa1=new}}在上面的程序中,我們一共產(chǎn)生了兩個(gè)類A的實(shí)例對(duì)象,在a1的fun2中,我們調(diào)用了a2一個(gè)對(duì)象的成員,在func2運(yùn)行期間的內(nèi)存狀態(tài)如圖3.13所示。第二個(gè)要想明白的問(wèn)題是,我們?cè)趂unc2內(nèi)部能別的對(duì)象,我們能不能在func2內(nèi)部那個(gè)“事先存在并對(duì)func2進(jìn)行調(diào)用”的對(duì)象呢?這個(gè)“事先存在并對(duì)func2進(jìn)行己所屬的那個(gè)對(duì)象呢?也就是自己所屬的那個(gè)對(duì)象的名稱是什么呢?是a1嗎?那個(gè)對(duì)象在TestA.main方法中叫a1,但在func2內(nèi)就不叫a1了,因?yàn)?,我們?cè)诙xfunc2時(shí),對(duì)象a1在func2中用a1代表了func2所屬的那個(gè)對(duì)象,那么,當(dāng)我們調(diào)用a2.func2()時(shí),這時(shí)的func2所屬的那個(gè)對(duì)象就不再是a1了,而是a2了,顯然我們?cè)趂unc2中不能用以后定義的對(duì)象名來(lái)它所屬的那個(gè)對(duì)象。this關(guān)鍵字在java程序里的作用和它的詞義很接近,它在函數(shù)內(nèi)部就是這個(gè)函數(shù)所屬的對(duì)象的變量。class{Stringname;publicA(Stringx){name=}publicvoid{System.out.println(“func1of”+name+“is}publicvoid{Aa2=newthis.func1();//使用this關(guān)鍵字調(diào)用func1}}func1ofa1iscallingfunc1ofa2is我們前面講過(guò),一個(gè)類中的成員方法可以直接調(diào)用同類中的其他成員,其實(shí)對(duì)于類A中的構(gòu)造函數(shù):publicA(String{name=}publicA(String{=}Athis3.13thisthis{String (String{}}同,不就解決這個(gè)問(wèn)題了嗎?雖然面的例子中,我們都是這樣做的,那是因?yàn)槲覀冞€沒(méi)講到此相關(guān)的,老手看到函數(shù)的定義,就能揣摩出函數(shù)中的代碼,了別人和自己日后閱讀{String (String{}}class{Componentpublic {comp=newComponent(this);//將this作為對(duì)象傳}}class{ContainermyContainer;publicComponent(Containerc){myContainer=}}法名,而是用this(參數(shù)列表)的形式,根據(jù)其中的參數(shù)列表,選擇相應(yīng)的構(gòu)造方法。public{intage; (String{=} (Stringname,int{this.age=age;}

finalize()方法的作用類似C++中的析構(gòu)方法,但由于Java有回收的機(jī)制,當(dāng)一個(gè)對(duì)象變成,他所的其他對(duì)象在沒(méi)有被別的有效的句柄的話,也會(huì)隨之變成,也方法的作用就不如C++中的析構(gòu)方法那么重要了。finalize()方法是在對(duì)象被當(dāng)著從內(nèi)存中釋放前調(diào)用,而不是在對(duì)象變成前調(diào)用,回收器的啟用不由程序員控制,也無(wú)規(guī)律可循,并不會(huì)一產(chǎn)生了,它就被喚起,甚至有可能到程序終止,它都沒(méi)有啟動(dòng)的機(jī)會(huì)。因{publicvoid{System.out.println("theobjectis}publicstaticvoidmain(String[]{ System.out.println("theprogramis}}theprogramisSystem.out.println("theprogramisSystem.gc的作時(shí)需要馬上被釋放,或者程序在某段時(shí)間內(nèi)產(chǎn)生大量時(shí),釋放占據(jù)的內(nèi)存空間似乎成了一件棘手的事情,如果回收器不被啟動(dòng),finalize()方法也不會(huì)被調(diào)用。為此,Java里提供了一個(gè)System.gc()方法,使用這個(gè)方法可以強(qiáng)制啟動(dòng)回收器來(lái)會(huì)收,就象我們主動(dòng)給環(huán)衛(wèi)局打,通知他們提前來(lái)清掃的道理是一樣的。上面的程序作{publicvoid{System.out.println("theobjectis}publicstaticvoidmain(String[]{ System.out.println("theprogramis}}theobjectisgoing!theobjectisgoing!theobjectisgoing!theprogramisending!基本數(shù)據(jù)類型的參數(shù)傳class{publicstaticvoidmain(String[]{intx=5;}publicstaticvoidchange(int{x=}}change方法被調(diào)用時(shí),定義了一個(gè)名為x的變量,它只在change方法中有取出main方法中的x的值,賦值給change中的改變change中的x的change方法結(jié)束,change方法中x來(lái)的結(jié)果應(yīng)該是5。可見(jiàn),基本類型的變量作為實(shí)參傳遞,并不能改變這個(gè)變量的值。數(shù)據(jù)類型的參數(shù)傳class{intxpublicstaticvoidmain(String[]{PassRefobj=newPassRef();obj.x=5;}publicstaticvoidchange(PassRef{}}我們通過(guò)圖3.17來(lái)看一下發(fā)生了什么:main方法中的obj指向的對(duì)象內(nèi)main方法的obj的值賦給change方法中的obj,使其指向同一內(nèi)通過(guò)change方法中的obj而改變堆內(nèi)存中對(duì)象的內(nèi)們就會(huì)看到:在main方法中的obj所的對(duì)象的內(nèi)容被改變向的對(duì)象的內(nèi)容已在change方法中被改變。change方法中的obj(這里用A標(biāo)記)就好比mainclass{publicstaticvoidmain(String[]{int[]x=newx[0]=}publicstaticvoidchange(int[]{x[0]=}}class{intxpublicstaticvoidmain(String[]{PassRefobj=newPassRef();obj.x=5;}publicstaticvoidchange(PassRef{obj=newPassRef();}}change方法的obj被改變mainobj指向堆內(nèi)change方法中的obj指向堆中將change方法中的obj指向的對(duì)象的x賦值為change方法結(jié)束,change中的obj變量被釋放,在main方法中的obj所的對(duì)象的內(nèi)容保持不變3.18靜態(tài)變new在每一個(gè)3.19例對(duì)象來(lái)這個(gè)變量,要實(shí)現(xiàn)這個(gè)效果,我們只需要在類中定義的coutry變量前面加上static關(guān)鍵字即可,我們稱這種變量為靜態(tài)成員變量。我們也可以直接使用類名來(lái)這個(gè)country這個(gè)變量,還可以在類的非靜態(tài)的成員方法中象其他非靜態(tài)成員變量一樣去{staticStringcountry=”中國(guó)”;Stringname;intvoid{}}class{publicStaticvoidmain(String[]{ countryis“ ch1=new System.out.println(“Chinescountryis“+}}{staticinti=}class{privatestaticintcount=0;publicA(){count=count+}}在上面的程序中,每產(chǎn)生一個(gè)類A的實(shí)例對(duì)象,都會(huì)調(diào)用類A的構(gòu)造方法,我們?cè)跇?gòu)造方接修改count變量,我們用private關(guān)鍵字限定了count變量的權(quán)限。我們?nèi)绾谓y(tǒng)計(jì)一個(gè)類在程序中目前有多少個(gè)實(shí)例對(duì)象呢?我們只要在上面這個(gè)程序的基class{privatestaticintcount=0;publicA(){count=count+}publicvoid{count=count-}}我們講過(guò),回收器的啟用不由程序員控制,也無(wú)規(guī)律可循,并不會(huì)一產(chǎn)生了,它就被喚起,甚至有可能到程序終止,它都沒(méi)有啟動(dòng)的機(jī)會(huì),因此利用回收來(lái)解決我們程序有多少個(gè)有效(還沒(méi)變成)的實(shí)例對(duì)象”,對(duì)于這個(gè)問(wèn)題,我們只要知道一個(gè)對(duì)象變成垃圾時(shí)會(huì)調(diào)用對(duì)象的哪個(gè)方法,就可以實(shí)現(xiàn)我們的需求了。當(dāng)沒(méi)有指向一個(gè)對(duì)象時(shí),這個(gè)對(duì)象就會(huì)變成。這個(gè)問(wèn)題涉及一些更復(fù)雜的知識(shí),不屬于本書的講解范圍,我們就不在這作靜態(tài)方稱這種方法為靜態(tài)成員方法。同靜態(tài)成員變量一樣,我們可以用類名直接靜態(tài)成員方法,{staticvoid{”);}void{}}class{publicStaticvoidmain(String[]{ch1=new }}類的靜態(tài)成員經(jīng)常被稱作“類成員”(classmembers),對(duì)于靜態(tài)成員變量,我們叫類屬性(classattributes),對(duì)于靜態(tài)成員方法,我們叫類方法(classmethodsstatic2).靜態(tài)方法不能以任何方式this和super關(guān)鍵字(super關(guān)鍵字在下一章講解。與3).main()方法是靜態(tài)的,因此JVM在執(zhí)行main方法時(shí)不創(chuàng)建main方法所在的類的實(shí)例對(duì)對(duì)象后,才能通過(guò)這個(gè)對(duì)象去類中的非靜態(tài)成員,這種情況,我們?cè)谝院蟮睦又袝?huì)多次對(duì)于上面的幾個(gè)一個(gè)類中可以使用不包含在任何方法體中的靜態(tài)代碼塊(staticblockclass{staticStringcountry;{country=“ System.out.println(“StaticCodeisloading“);}}class{{}publicstaticvoidmain(String[]{System.out.println(“beginexecutingmainnewStaticCode();new}}TestStaticCodeisloadingbeginexecutingmainmethodStaticCodeisloading單態(tài)設(shè)計(jì)模如果我們要讓類在一個(gè)虛擬機(jī)中只能產(chǎn)生一個(gè)對(duì)象,我們首先必須將類的構(gòu)造方法的private,new法以返回類內(nèi)部創(chuàng)建的對(duì)象,靜態(tài)方法只能類中的靜態(tài)成員變量,所以,指向類內(nèi)部產(chǎn)生publicclass{privatestaticfinalTestSingleonlyOne=newTestSingle();publicstaticTestSinglegetTestSingle(){return}private}的對(duì)象。我的一些學(xué)員告訴我,有些用人單位對(duì)于應(yīng)聘者這樣的知識(shí)點(diǎn)樂(lè)此不疲,希望剛才這句話,能對(duì)那些想通過(guò)學(xué)習(xí)Java編程去找工作的讀者有所幫助。main方法的語(yǔ)中必須有main()方法,有了前面所有的知識(shí),讀者現(xiàn)在可以理解main方法的定義了。由Java虛擬機(jī)需要調(diào)用類的main()方法,所以該方法的權(quán)限必須是public,又因?yàn)镴ava虛擬機(jī)在執(zhí)行main()方法時(shí)不必創(chuàng)建對(duì)象,所以該方法必須是static的,該方法接收一個(gè)String類型publicclass{publicstaticvoidmain(String[]{for(int{}}}JavaTestMainfirstsecond在一個(gè)類內(nèi)部定義類,這就是嵌套類(nestedclasses),也叫內(nèi)部類、內(nèi)置類。讀者以同叫法,因?yàn)樗伎挤绞降膯?wèn)題,反而在他那變得復(fù)雜了。嵌套類可以直接嵌套它的類的類中定義的內(nèi)部以直接和它的外部類的所有變量和方法,就像外部類中的其他非static成員的功能一class{intouter_i=100;voidtest(){Innerin=newInner(); }class{void { y:outer_i="+}}}class{publicstaticvoidmain(String[]{Outerouter=newOuter();}} y:outer_i=

圖class{intouter_i=100;voidtest(){Innerinner=newInner(); }class{inty=10;voiddisy(){System.out.println("disy:outer_i="+}}void{}}G:\outer.java:19:cannotresolvesymbolsymbol:variableylocation:classOuter^1如果用static修飾一個(gè)內(nèi)部類,這個(gè)類就相當(dāng)于是一個(gè)外部定義的類,所以static的內(nèi)部類中可static成員但是,非static的內(nèi)部類中的成員是不能為static的。static的內(nèi)部類不能再使用外層封裝類的非static的成員變量,這個(gè)道理不難想像!所以static嵌套class{intouter_i=100;voidtest(){Innerin=newInner();}staticclass{voiddis{System.out.println("disy:outer_i="+}}}class{publicstaticvoidmain(String[]{Outerouter=newOuter();}}E:\TestOuter.java:13:non-staticvariableouter_icannotbereferencedfromastaticcontext y:outer_i="+^1publicclass{privateintsize;publicclassInner{privateintpublicvoiddoStuff(int{size++;//的是doStuff函數(shù)的形參this.size++;//的是Inner類中的成員變量Outer.this.size++;//的Outer類中的成員變量}}}圖內(nèi)部類如何被外部class{privateintsize=10;publicclassInner{publicvoid{}}}publicclass{publicstaticvoidmain(String[]{Outerouter=newOuter();Outer.Innerinner=outer.newInner();}}程序中,內(nèi)部類Inner被為public,在外部就可以創(chuàng)建其外部類Outer的實(shí)例對(duì)象,再方法中定義的內(nèi)class{intouter_i=100;voidtest(){for(inti=0;i<5;{class{void { y:outer_i=+}}Innerinner=newInner();}}}class{publicstaticvoidmain(String{Outerouter=newOuter();}}disy:outer_x=100disy:outer_x=100disy:outer_x=100disy:outer_x=100disy:outer_x=100class{Stringstr=newString("Between");publicvoidamethod(finalintiArgs){intclass{publicvoid {}//Endofbicycle}}//Endof}使用Java的文檔注面的章節(jié)里我們介紹了JDK里主要的兩個(gè)程序,也就是Java源文件編譯程序javac.exe與Java字節(jié)碼解釋程序java.exe。但是除了這兩個(gè)程序之外,JDK中還有一些其他的工具程序。本節(jié)中,我們?yōu)榇蠹医榻B一下javadoc的詳細(xì)用法。釋,這已經(jīng)面講過(guò),其中一種被稱為文檔注釋,它以“/**”開始,以“*/”標(biāo)志結(jié)束。文工具生成的文檔隨處可見(jiàn),比如Sun公司的JavaAPI文檔庫(kù)就是這么生成的。我們首先來(lái)建立一個(gè)程序樣本,在這里我們簡(jiǎn)要的列出程序內(nèi)容,程序中存在的類及importpublicclass{publicStringpublicengineer(String{//初始化產(chǎn)生一個(gè)engineer,例如安排一 publicintrepairing(intsum,int{}14的定義之前。我們接著就為上面的樣本程序分段加上javadoc批注,順便對(duì)其中的內(nèi)容做相應(yīng)Title:engineerDescription:一個(gè)模擬工程師的類<Copyright:(c) @author@version@paramnameengineer01import02 *Title:engineer類 *Descrip

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論