1. 程式人生 > >內部類(成員內部類、靜態內部類、方法內部類)

內部類(成員內部類、靜態內部類、方法內部類)

一:成員內部類:

最常見的內部類就是成員內部類,也稱作普通內部類;


1、Inner類定義在Outer類的內部,相當於Outer類的成員變數的位置,Inner類可以使用任意訪問修飾符,如:public、private、protected等。

2、Inner類中定義的test()方法可以訪問Outer類中的資料,不受訪問控制符的影響。

3、 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 一個內部類物件,即:內部類 物件名 = 外部類物件.new 內部類( );如建立Inner的內部類物件:要先建立外部類物件:Outer o = new outer(); 建立內部類:Inner i = o.new Inner();訪問Inner中的test()方法:i.test();

例如:


4、如果外部類和內部類具有相同的成員變數或方法,內部類可以直接訪問內部類的成員變數或方法,但如果內部類訪問外部類的成員變數或者方法時,需要使用this關鍵字;如下:


二:靜態內部類

靜態內部類就是用static修飾的內部類,這種內部類的特點是:

1、靜態內部類不能直接訪問外部類的非靜態成員,但,可以通過new 外部類().成員的方式訪問;


2、如果外部類的靜態成員與內部類的靜態成員相同, 可以通過"類名.靜態成員"來訪問外部類的靜態成員;如果不同,可以直接呼叫外部類的靜態成員名。



3、建立靜態內部類的物件時,不需要外部類的物件,可以直接建立;

三:方法內部類:

1、方法內部類就是定義在外部類的方法中,方法內部類只在該方法內可以用;


2、由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。