Java 教程
在章節(jié)我們將來學(xué)習(xí) Java 的內(nèi)部類。
Java 一個類中可以嵌套另外一個類,語法格式如下:
class OuterClass { // 外部類 // ... class NestedClass { // 嵌套類,或稱為內(nèi)部類 // ... } }
要訪問內(nèi)部類,可以通過創(chuàng)建外部類的對象,然后創(chuàng)建內(nèi)部類的對象來實現(xiàn)。
嵌套類有兩種類型:
非靜態(tài)內(nèi)部類是一個類中嵌套著另外一個類。 它有訪問外部類成員的權(quán)限, 通常被稱為內(nèi)部類。
由于內(nèi)部類嵌套在外部類中,因此必須首先實例化外部類,然后創(chuàng)建內(nèi)部類的對象來實現(xiàn)。
以上實例執(zhí)行輸出結(jié)果為:
15
內(nèi)部類可以使用 private 或 protected 來修飾,如果你不希望內(nèi)部類被外部類訪問可以使用 private 修飾符:
以上實例 InnerClass 設(shè)置為私有內(nèi)部類,執(zhí)行會報錯:
MyMainClass.java:12: error: OuterClass.InnerClass has private access in OuterClass OuterClass.InnerClass myInner = myOuter.new InnerClass(); ^
靜態(tài)內(nèi)部類可以使用 static 關(guān)鍵字定義,靜態(tài)內(nèi)部類我們不需要創(chuàng)建外部類來訪問,可以直接訪問它:
以上實例執(zhí)行輸出結(jié)果為:
5
注意:靜態(tài)內(nèi)部類無法訪問外部類的成員。
內(nèi)部類一個高級的用法就是可以訪問外部類的屬性和方法:
以上實例執(zhí)行輸出結(jié)果為:
10其他擴(kuò)展