另有: http://blog.csdn.net/ilibaba/article/details/3866537
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內部類
匿名內部類如果繼承自接口,必須實現指定接口的方法,且無參數
匿名內部類如果繼承自類,參數必須按父類的構造函數的參數傳遞
內部類的作用
java 中的內部類和接口加在一起,可以的解決常被 C++ 程序員抱怨 java 中存在的一個問題??沒有多繼承。實際上,C++ 的多繼承設計起來很復雜,而 java 通過內部類加上接口,可以很好的實現多繼承的效果。
內部類:一個內部類的定義是定義在另一個內部的類。
原因是:
1.一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據。
2.對于同一個包中的其他類來說,內部類能夠隱藏起來。
3.匿名內部類可以很方便的定義回調。
4.使用內部類可以非常方便的編寫事件驅動程序。
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內部類
匿名內部類如果繼承自接口,必須實現指定接口的方法,且無參數
匿名內部類如果繼承自類,參數必須按父類的構造函數的參數傳遞
內部類的作用
java 中的內部類和接口加在一起,可以的解決常被 C++ 程序員抱怨 java 中存在的一個問題??沒有多繼承。實際上,C++ 的多繼承設計起來很復雜,而 java 通過內部類加上接口,可以很好的實現多繼承的效果。
內部類:一個內部類的定義是定義在另一個內部的類。
原因是:
1.一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據。
2.對于同一個包中的其他類來說,內部類能夠隱藏起來。
3.匿名內部類可以很方便的定義回調。
4.使用內部類可以非常方便的編寫事件驅動程序。