Java的內部類(Inner Class)和嵌套類(Nested Class)的區別

轉載地址 http://blog.csdn.net/holmes_conan/article/details/41179353


內部類是類中類(內部類不爲同一包的其他類可見,具有很好的封裝性),分爲靜態內部類,成員內部類,局部內部類以及匿名內部類;局部內部類寫在方法裏面;用到最多的就是匿名內部類,例子如下:

首先定義一個接口:Interface A{ public void method();}

然後 A a = new A(){public void method{ System.out.println("hehe!");}}

上面表達式等號右邊就是一個匿名內部類,事實上它是一個沒有名稱的接口A的實現類。

 

1. 靜態的內部類稱爲嵌套類,嵌套類不能直接引用外部類的non-static屬性和方法,創建嵌套類對象時不依賴外部類對象;

2. 靜態內部類沒有了指向外部的引用,和C++的嵌套類很相像了,Java內部類和C++嵌套類最大的不用在於是否具有指向外部引用這點;

3. 在任何非靜態內部類中,都不能有靜態數據、靜態方法或者又一個靜態內部類(也就是不止一層),然後靜態內部類可以擁有這一切。

發佈了20 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章