1.靜態內部類(static inner class)
定義如下:
class outclass //靜態內部類
}
靜態內部類是指被宣告為static的內部類,它不依賴與外部類例項而被例項化。靜態內部類不能訪問外部類的普通成員變數,只能訪問外部類中的靜態成員和靜態方法(包含私有型別)。
2.成員內部類(member inner class)
定義如下:
class outclass //成員內部類
}
成員內部類就是普通的內部類,可以自由引用外部類的方法,不管是靜態還是非靜態,但是內部不可以定義靜態的方法和屬性,而且只有被內部類被例項化後,這個類才能被例項化。
3.區域性內部類(local inner class)
定義如下:
class outclass //區域性內部類
}}
區域性內部類是定義在**塊中的類,它的作用範圍為所在的**塊中,極少用到。區域性內部類跟區域性變數比較類似,不能被public、protected、private以及static修飾,只能訪問方法中定義為final型別的區域性變數。如果區域性內部類,在靜態的**塊或者方法中,則會變成區域性靜態內部類。
4.匿名內部類(anonymous inner class)
定義如下:
class outclass
}.run();
}
匿名內部類是乙個沒有類名的內部類,不能使用關鍵字class、extends、implement,沒有建構函式,自身必須繼承其他類或者介面。匿名內部類的好處是**更加簡潔。使用內部類需要牢記一下幾個原則:
1.匿名內部類不能有建構函式;
2.匿名內部類不能定義靜態成員、方法和類;
3.匿名內部類不能是public、protected、private、static;
4.只能建立內部類的乙個例項;
5.乙個匿名內部類一定是在new的後面,必須繼承乙個父類或者實現乙個介面;
6.匿名內部類為區域性內部類,所以區域性內部類的所有限制都對其生效。
JAVA基礎篇 內部類
定義在乙個類內部的類稱為內部類。內部類訪問許可權可以是public protected default或private,可以宣告為abstract供其他內部類或外部類繼承,可以宣告為static final,也可以實現特定的介面。外部類可以訪問內部類的所有方法與屬性,包括私有屬性和方法。ps 這裡只...
內部類(基礎)
內部類可以直接訪問外部類的成員 外部類想要訪問外部類的成員,先需要例項化內部物件也就是 new內部物件 outer.inner inner new outer new inner 成員內部類持有外部類物件的引用 先建立乙個net類 public class net public void loadd...
java基礎 內部類和匿名內部類
內部類 class a 編譯後的結果 內部類編譯後都是以這種形式 外部類 內部類 如何生成內部類 class test 注意點 class a b是a的內部類,b可以使用a的成員變數,但不是繼承它,僅僅是可以使用。匿名內部類 正常的程式 inte ce aclass b class aimpl im...