java內部類總結
簡單來說,內部類就是在我們所熟悉的類中的里面再定義一個類
為什么需要內部類?
當我們描述事物時,事物之中還有事物,我們就用內部類描述事物
因為內部事物在使用外部事物的內容
我舉一個例子 人體有心臟,血液,肝,脾,肺-……那么心臟該如何定義?
我們應該定義心臟為內部類,因為它在使用外部類(人體)的血液,氧氣……
實例1:內部類的基本結構
class Out /*外部類*/ { private int x=3; class In /*內部類*/ { private int y public void show() { System.out.println(x); } } } class Demo { public static void main(String args[]) { Out.In in=new Out().new In(); /*創建內部類對象的格式*/ in.show(); } }
運行結果:3
從上面的例子不難看出,內部類其實嚴重破壞了良好的代碼結構,但為什么還要使用內部類呢?
因為內部類可以隨意使用外部類的成員變量(包括私有)而不用生成外部類的對象,這也是內部類的唯一優點
如同心臟可以直接訪問身體的血液,而不是通過醫生來抽血
程序編譯過后會產生兩個.class文件,分別是Out.class和Out$In.class
其中$代表了上面程序中Out.In中的那個 .
Out.In in = new Out().new In()可以用來生成內部類的對象,這種方法存在兩個小知識點需要注意
1.開頭的Out是為了標明需要生成的內部類對象在哪個外部類當中
2.必須先有外部類的對象才能生成內部類的對象,因為內部類的作用就是為了訪問外部類中的成員變量
其它的示例請看:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html