內(nèi)部類的定義與調(diào)用_第1頁
內(nèi)部類的定義與調(diào)用_第2頁
內(nèi)部類的定義與調(diào)用_第3頁
內(nèi)部類的定義與調(diào)用_第4頁
內(nèi)部類的定義與調(diào)用_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

內(nèi)部類的定義與調(diào)用1一般內(nèi)部類

內(nèi)部類是定義在一個類的類體中的類,內(nèi)部類也可以包含變量和方法。一般內(nèi)部類可分為成員類、靜態(tài)類和局部類三種。內(nèi)部類的定義與調(diào)用1)成員類classOutC{ privateStringi="我是成員變量"; voidA(){ System.out.println("我是成員方法"); } classInC{//內(nèi)部類的定義 voidprint(){ System.out.println("我是成員類"); } }}內(nèi)部類的定義與調(diào)用成員類可正常訪問其它類成員,也可如其它成員一樣被修飾,但從外部訪問成員類需注意:

Aa=newA("外部類A");//先創(chuàng)建外部類實例

A.Bb=a.newB();//通過外部類實例創(chuàng)建內(nèi)部類對象eg1

publicstaticvoidmain(Stringargs[]){ OutCout=newOutC(); InCin=out.newInC(); in.print();}內(nèi)部類的定義與調(diào)用eg1//成員類publicclasseg1{ publicstaticvoidmain(String[]args){ OutCout=newOutC(); OutC.InCin=out.newInC();//其它類訪問內(nèi)部類成員的作法

in.print(); }}classOutC{ privateinti; voidA(){ InCin=newInC();//外部類訪問內(nèi)部類成員的做法

in.innerInt=1; } classInC{//內(nèi)部類的定義

privateintinnerInt; voidprint(){ System.out.println("generalInt="+i); } }}內(nèi)部類的定義與調(diào)用

static修飾的成員類又稱為靜態(tài)類。①頂層類只能訪問外部類的static成員。②除外部類外的其它類訪問靜態(tài)類時對象的創(chuàng)建方式和成員類不同。2)靜態(tài)類

A.Bb=newA.B();//通過外部類直接創(chuàng)建內(nèi)部類對象beg2可以使用內(nèi)部類來實現(xiàn)接口和抽象類。eg3eg2//靜態(tài)類publicclasseg2{ publicstaticvoidmain(String[]args){ OutCout=newOutC(); OutC.InCin=newOutC.InC(); in.print(); }}classOutC{ privateinti; staticintj; voidA(){ InCin=newInC(); in.innerInt=1; } staticclassInC{//頂層類的定義

privateintinnerInt; voidprint(){ // System.out.println("generalInt="+i); System.out.println("staticInt="+j); } }}eg3classeg3//外部類定義{ privateclassPContentsextendsContents//內(nèi)部類實現(xiàn)抽象類

{ privateinti; PContents(intcn){i=cn;} publicintvalue(){returni;} } protectedclassPDestinationimplementsDestination//內(nèi)部類實現(xiàn)接口

{ privateStringlabel; privatePDestination(StringwhereTo){label=whereTo;} publicStringreadLabel(){returnlabel;} } publicDestinationdest(Strings){returnnewPDestination(s);} publicContentscont(intcn){returnnewPContents(cn);}}//運用內(nèi)部類來實現(xiàn)接口和抽象類中的抽象方法abstractclassContents//抽象類定義{ abstractpublicintvalue();}interfaceDestination//接口定義{ StringreadLabel();}classInnerClass//測試類{ publicstaticvoidmain(String[]args) {

eg3p=neweg3(); Contentsc=p.cont(100); Destinationd=p.dest("Tanzania"); System.out.println(c.value()); System.out.println(d.readLabel()); }}內(nèi)部類的定義與調(diào)用

方法中定義的類是方法的一個局部變量。①局部類的作用域僅限于方法內(nèi),可以避免類名的沖突。②局部類只能訪問方法中的final變量。

要使用局部類只能通過調(diào)用方法來實現(xiàn),不能通過創(chuàng)建類的實例來完成。eg43)局部類eg4//局部類publicclasseg4{ publicstaticvoidmain(String[]args){ OutClassout=newOutClass(); Objectin=out.makeInner(); }}classOutClass{ privateintg; ObjectmakeInner(){ inti; finalintj=0;

classInnerClass{//局部類定義

voidprint(){ System.out.println("generalInt="+g); System.out.println("j="+j); } publicStringtoString(){return"InnerClass";} }

//newInnerClass().print(); //System.out.println(newInnerClass().toString()); returnnewInnerClass(); }}七、內(nèi)部類的定義與調(diào)用1)什么是匿名類?2)匿名類的定義和實例創(chuàng)建是同時完成的。3匿名類沒有class關(guān)鍵字,不能有修飾符,也不能定義構(gòu)造方法。4)使用匿名類可使代碼更簡潔。2、特殊內(nèi)部類——匿名類interfaceTestInterface{ voidprint();}newTestInterface(){{//匿名類實現(xiàn)接口publicvoidprint(){System.out.println(“Anonymousclass”);}};相當(dāng)于:classAimplementsTestInterface{//一般類實現(xiàn)接口publicvoidprint(){System.out.println(“Anonymousclass”);}}

eg5

內(nèi)部類的定義與調(diào)用——示例eg5//匿名類publicclasseg5{ publicstaticvoidmain(String[]args){ TestInterfacetest=newTestInterface(){ publicvoidprint(){System.out.println("Snonymousclassdefinition"); } }; test.print(); }}interfaceTestInterface{voidprint();}importjava.awt.*;importjava.awt.event.*;classAextendsFrame{

publicA(){

addWindowListener(newWindowAdapter(){//匿名類實現(xiàn)接口

publicvoidwindowClosi

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論