這篇文章帶給大家的內容是關於java內部類別的存取格式和規則的介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
1.內部類別的定義
定義一個類別來描述事物,但是這個事物其中可能還有事物,這時候在類別中再定義類來描述。
2.內部類別存取規則
①內部類別可以直接存取外部類別中的成員,包括私有 。
之所以可以直接存取外部類別中的成員,是因為內部類別中持有了一個外部類別的引用
格式:外部類別名稱.this
②外部類別要存取內部類別,必須建立內部類別物件。
3.存取格式
①當內部類別定義在外部類別的成員位置上,而且非私有,可以在外部其他類中。可以直接建立內部類別物件。
外部類別名稱.內部類別名稱 變數名稱= 外部類別物件.內部類別物件;
Outer.Inner in = new Outer().new Inner();
# ②當內部類別在成員位置上,就可以被成員修飾符所修飾。
例如,private:將內部類別在外部類別中封裝。
static:內部類別具備了static的特性。
當內部類別被static修飾後,只能直接存取外部類別中的static成員。出現了存取局限,在外部其他類別中,如何直接存取static內部類別的非靜態成員呢?
new Outer.Inner().function; //非静态成员需要实例化才能调用方法。
在外部其他類別中,如何直接存取static內部類別的靜態成員?
Outer.Inner.function(); //静态的先加载入内存,直接类名调用就行了。
但要注意,當內部類別中定義了靜態成員,該內部類別必須是static的。
當外部類別中的靜態方法存取內部類別時,內部類別也必須是static的。跟著靜態變數的存取權一樣。
class Outer // 所谓的外部类 { private int x = 2;// 外部类的成员变量,私有修饰 class Inner // 内部类 { void function() { System.out.print("inner:" + Outer.this.x); } } } class func { public static void main(String[] args) { Outer out = new Outer(); // 直接访问内部类成员 Outer.Inner in = new Outer().new Inner(); in.function(); } }
以上是java內部類別的存取格式和規則的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!