內部類分為:成員內部類(靜態和非靜態)、匿名內部類、區域內部類
1.成員內部類(可以使用private、default、protected、public任意修飾)
非靜態內部類
1.非靜態內部類必須寄存在一個外部類物件里,因此,如果有一個非靜態內部類物件那么一定存在對應的外部類物件
2.非靜態內部類可以直接訪問外部類的成員,但是外部類不能直接訪問非靜態內部類成員
3.非靜態內部類不能有靜態方法、靜態屬性和靜態初始化塊,
4.外部類的靜態方法、靜態代碼塊不能訪問非靜態內部類,包括不能使用非靜態內部類定義變數、創建實體
5.成員變數訪問:
內部類例方法的區域變數:變數名,
內部類屬性:this.變數名
外部類屬性:外部類名.this.變數名
例:

靜態內部類
1.當一個靜態內部類物件存在,并不一定存在對應的外部類物件,因此,靜態內部類的實體方法不能直接訪問外部類的實體方法
2.靜態內部類看作外部類的一個靜態成員,因此,外部類的方法中可以通過:“靜態內部類.名字”的方式訪問靜態內部類的靜態成員,
通過new靜態內部類()訪問靜態內部類的實體,
例:

2.匿名內部類
適用于只需要使用一次的類,比如:鍵盤監聽操作等
結構:
new 父類構造器(實參串列)/實作介面(){
//匿名內部類類體
}
例:

注:
1.匿名內部類沒有訪問修飾
2.匿名內部類沒有構造方法,因為它連名字都沒有,
3.匿名內部類在安卓開發中大量出現
3.區域內部類
在方法內部定義一個類,作用域只限于本方法,稱位區域內部類(很少見)
例:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158878.html
標籤:Java
下一篇:Spring如何解決回圈依賴?
