java面試之內部類
阿新 • • 發佈:2018-12-26
1、靜態內部類
定義在一個類裡,並在定義時加上static關鍵字,被編譯成一個完全獨立的.class檔案,名稱為OuterClass$InnerClass.class的形式,只可以訪問外部類的靜態成員和靜態方法,包括了私有的靜態成員和方法。
定義方式:OutClass.InnerClass inner = new OutClass.InnerClass()
2、成員內部類
也是定義在一個類裡,它可以訪問它的外部類的所有成員變數和方法,不管是靜態的還是非靜態的都可以。
定義方式:OutClass.InnerClass inner = new OutClass().new InnerClass()
3、區域性內部類
區域性內部類定義在方法中,比方法的範圍還小;像區域性變數一樣,不能被public, protected, private和static修飾。只能訪問方法中定義的final型別的區域性變數,但是可以訪問外部類的所有成員變數。
定義方法:直接通過呼叫外部類物件的方法來使用區域性內部類。