Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類

Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類

ID:38164217

大小:15.77 KB

頁數(shù):4頁

時(shí)間:2019-06-06

Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類_第1頁
Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類_第2頁
Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類_第3頁
Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類_第4頁
資源描述:

《Java面向?qū)ο?基礎(chǔ)編):內(nèi)部類》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、內(nèi)部類一.內(nèi)部類的基本定義在類內(nèi)部可以定義方法和成員變量,而且在類內(nèi)部也可以定義另一個(gè)類。如果在類Outer的內(nèi)部再定義7一個(gè)類Inner,此時(shí)列Inner就稱為內(nèi)部類,而類Outer則稱為外部類。內(nèi)部類可聲明成public或private。當(dāng)內(nèi)部類聲明成public或private時(shí),對其訪問的權(quán)限與成員變量和成員方法完全相同。格式如下:標(biāo)識符class外部類的名稱{//外部類的成員標(biāo)識符class內(nèi)部類的名稱{//內(nèi)部類的成員}}【定義內(nèi)部類】classOuter{privateStringinfo="helloworld??!";clas

2、sInner{publicvoidprint(){System.out.println(info);}};publicvoidfun(){newInner().print();}};publicclassInnerClassDemo01{publicstaticvoidmain(Stringargs[]){newOuter().fun();}}運(yùn)行結(jié)果:helloworld?。某绦蜻\(yùn)行結(jié)果中可以清楚地發(fā)現(xiàn),Inner類作為Outer類的內(nèi)部類存在,并且在外部類的fun()方法之中直接實(shí)例化內(nèi)部類的對象并調(diào)用方法print(),但是從以上代碼

3、中可以明顯地發(fā)現(xiàn),內(nèi)部類的存在實(shí)際上已經(jīng)破壞了一個(gè)類的基本結(jié)構(gòu),因?yàn)轭愂怯蓪傩约胺椒ńM成的,所以這是內(nèi)部類的一個(gè)缺點(diǎn),那么內(nèi)部類有什么優(yōu)點(diǎn)呢?如果現(xiàn)在把內(nèi)部類拿到外面,就能發(fā)現(xiàn)其優(yōu)點(diǎn)。代碼如下:【將內(nèi)部類拿到外部】classOuter{privateStringinfo="helloWorld!!!";publicStringgetInfo(){returnthis.info;}publicvoidfun(){newInner(this).print();}}classInner{privateOuterout=null;publicInne

4、r(Outerout){this.out=out;}publicvoidprint(){System.out.println(out.getInfo());}};publicclassInnerClassDemo02{publicstaticvoidmain(Stringargs[]){newOuter().fun();}}運(yùn)行結(jié)果:helloWorld!!!以上程序完成了與內(nèi)部類同樣的功能,但是代碼明顯比之前的更加復(fù)雜,所以內(nèi)部類的唯一好處就是可以方便地訪問外部類中的私有屬性。一.使用static定義內(nèi)部類使用static聲明的內(nèi)部類就變成

5、了外部類,但是用static聲明的內(nèi)部類不能訪問非static的外部類屬性?!臼褂胹tatic聲明內(nèi)部類】classOuter{privatestaticStringinfo="helloWorld!";staticclassInner{publicvoidprint(){System.out.println(info);}};};publicclassInnerClassDemo03{publicstaticvoidmain(Stringargs[]){newOuter.Inner().print();}}運(yùn)行結(jié)果:helloWorld!以

6、上程序?qū)nfo屬性定義成為static類型,這樣程序中就可以通過static聲明的內(nèi)部類直接訪問此static屬性。一.在外部訪問內(nèi)部類一個(gè)內(nèi)部類除了可以通過外部類訪問,也可以直接在其他類中進(jìn)行調(diào)用,調(diào)用的基本格式為:外部類.內(nèi)部類內(nèi)部類對象=外部類實(shí)例.new內(nèi)部類();以上的操作格式中,首先要找到外部類的實(shí)例化對象之后,才可以通過外部類的實(shí)例化對象去實(shí)例化內(nèi)部類的對象。注意:在內(nèi)部類定義之后,生成的class文件是以O(shè)uter$Inner.class的形式存在的,在Java中只要在文件中存在$,則在程序中應(yīng)將其替換為“.”?!驹谕獠吭L問

7、內(nèi)部類】classOuter{privateStringinfo="helloworld!!";classInner{publicvoidprint(){System.out.println(info);}};};publicclassInnerClassDemo04{publicstaticvoidmain(Stringargs[]){Outerout=newOuter();//實(shí)例化外部類對象Outer.Innerin=out.newInner();//實(shí)例化內(nèi)部類對象in.print();//調(diào)用內(nèi)部類的方法}}運(yùn)行結(jié)果:hellowo

8、rld!!二.在方法中定義內(nèi)部類也可以在方法中定義一個(gè)內(nèi)部類,但是在方法中定義的內(nèi)部類不能直接訪問方法中的參數(shù),如果方法中的參數(shù)要想被內(nèi)部類訪問,中無參數(shù)前面必須加

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。