Java中的內部類

2021-08-01 22:13:11 字數 1763 閱讀 8546

內部類就是定義在乙個類裡面的類,與之對應,包含內部類的類被稱為外部類。

1.內部類提供了更好的瘋轉個,可以把內部類隱藏在外部類之內,不允許同乙個包中的其他類訪問該類

2.內部類的方法可以直接訪問外部類的所有資料,包括私有的資料

3.內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類更方便

1.成員內部類

內部類中最常見的就是成員內部類,也稱為普通內部類。我們來看如下**:

執行結果:訪問外部類中的a:99

訪問內部類中的b:2

從上面的**中我們可以看到,成員內部類的使用方法:

1.inner類定義在outer類的內部,相當於outer類的乙個成員變數的位置,inner類可以使用任意訪問控制符,如public、protected、private等

2.inner類中定義的test()方法可以直接訪問outer類中的資料,而不受訪問控制符的影響,如直接訪問outer類中的私有屬性a

3.定義了成員內部類後,,必須使用外部類物件來建立內部類物件,而不能直接去new乙個內部類物件,即:內部類 物件名=外部類物件.new 內部類();

4.編譯上面的程式後,會產生兩個.class檔案

其中,第二個是外部類的 .class 檔案,第乙個是內部類的 .class 檔案,即成員內部類的 .class

檔案總是這樣:外部類名$內部類名.class

注意:

1、 外部類是不能直接使用內部類的成員和方法滴

2、 如果外部類和內部類具有相同的成員變數或方法,內部類預設訪問自己的成員變數或方法,如果要訪問外部類的成員變數,可以使用 this 關鍵字。

2.靜態內部類

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

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

2、 如果外部類的靜態成員與內部類的成員名稱相同,可通過「類名.靜態成員」訪問外部類的靜態成員;如果外部類的靜態成員與內部類的成員名稱不相同,則可通過「成員名」直接呼叫外部類的靜態成員

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

3.方法內部類

方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。

注意:

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

4.匿名內部類

匿名內部類也就是沒有名字的內部類 正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化**編寫 但使用匿名內部類還有個前提條件:必須繼承乙個父類或實現乙個介面

1.慕課網

2.

JAVA中的內部類 方法內部類

方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。下邊的例子 外部類 public class helloworld 建立方法內部類的物件 min...

Java中內部類

內部類的規則 1.內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有乙個外部類的引用,格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置了,而且非私有,可以在外部其他類中。可以直接建立內部類...

java中內部類

下面我列出個程式,能看懂這個程式的錯誤相信對內部類的理解就變得容易多了 class innerclassdemo6 public void method public static void main string args 在這個程式中有兩個錯誤的地方 另外乙個程式,補足程式,用到匿名內部類的知識...