天天看點

關于Java内部類的初始化

這裡的T不是内部類,隻是在Test.java檔案的内部而已。

T 的修飾符隻允許使用“public”、“abstract”和“final”。

T的執行個體化過程和主類沒有差別

就可以,在本Java檔案和其他Java檔案都是這樣執行個體化。但是要注意,由于沒有權限修飾符是預設包通路權限,是以隻能在包内執行個體化。

要執行個體化内部類對象,必須先有外部類對象,通過外部類對象.new 内部類();來執行個體化内部類對象,在其他檔案或者其他包内都是這樣,隻是要能在其他包執行個體化的話,内部類Inner還得加上修飾符public。

執行個體化靜态内部類和執行個體化正常内部類有類似的地方,而不同之處在與靜态内部類由于是靜态的,是以不需要外部類對象就可以執行個體化,如上例Outter.Inner in = new Outter.Inner();

在其他Java檔案也是這麼執行個體化的。

局部内部類是定義在一個方法或者一個作用域裡面的類,它和成員内部類的差別在于局部内部類的通路僅限于方法内或者該作用域内,是以隻能在方法或者該作用域内執行個體化。

匿名内部類可以繼承一個類或實作一個接口,這裡的ClassOrInterfaceName是匿名内部類所繼承的類名或實作的接口名。但匿名内部類不能同時實作一個接口和繼承一個類,也不能實作多個接口。如果實作了一個接口,該類是Object類的直接子類,匿名類繼承一個類或實作一個接口,不需要extends和implements關鍵字。