Java內部類

內部類總結:
  1. 首先,把內部類作爲外部類的一個特殊的成員來看待,因此它有類成員的封閉等級:private ,protected,默認(friendly),public, 它有類成員的修飾符:   static,final,abstract
  2. 非靜態內部類nested inner class,內部類隱含有一個外部類的指針this,因此,它可以訪問外部類的一切資源(當然包括private) 外部類訪問內部類的成員,先要取得內部類的對象,並且取決於內部類成員的封裝等級。 非靜態內部類不能包含任何static成員.
  3. 靜態內部類:static inner class,不再包含外部類的this指針,並且在外部類裝載時初始化.靜態內部類能包含static或非static成員.靜態內部類只能訪問外部類static成員.外部類訪問靜態內部類的成員,循一般類法規。對於static成員,用類名.成員即可訪問,對於非static成員,只能用對象.成員進行訪問
  4. 對於方法中的內部類或塊中內部類只能訪問塊中或方法中的final變量。
類成員有兩種static , non-static,同樣內部類也有這兩種
non-static 內部類的實例,必須在外部類的方法中創建或通過外部類的實例來創建(OuterClassInstanceName.new innerClassName(ConstructorParameter)),並且可直接訪問外部類的信息,外部類對象可通過OuterClassName.this來引用
static 內部類的實例, 直接創建即可,沒有對外部類實例的引用。
內部類不管static還是non-static都有對外部類的引用
non-static 內部類不允許有static成員
方法中的內部類只允許訪問方法中的final局部變量和方法的final參數列表,所以說方法中的內部類和內部類沒什麼區別。但方法中的內部類不能在方法以外訪問,方法中不可以有static內部類
匿名內部類如果繼承自接口,必須實現指定接口的方法,且無參數 
匿名內部類如果繼承自類,參數必須按父類的構造函數的參數傳遞
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章