轉載地址 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. 在任何非靜態內部類中,都不能有靜態數據、靜態方法或者又一個靜態內部類(也就是不止一層),然後靜態內部類可以擁有這一切。