內部類 成員內部類 區域性內部類 匿名內部類

2021-10-05 12:59:16 字數 1319 閱讀 7795

public  class  外部類

}private int num = 0;

//外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問

}

使用方式:

1.外部類使用內部類,主函式再使用外部類

2.通過new的方式

外部類.內部類 物件名 = new 外部類().new 內部類();
定義在方法內部的類,就是區域性內部類,只有當前所屬方法才能使用。

//外部類

public class outer

} inner inner = new inner();

inner.methodinner();

}}

public class mymain

}

區域性內部類要訪問所在方法中的區域性變數,則這個區域性變數必須是final修飾的。

原因:

1.new出來的物件在堆中

2.區域性變數跟著方法走的,在棧記憶體當中

3.方法執行結束後,立刻出棧,區域性變數就會消失

4.但是new出來的物件還在堆中,直到被**

定義乙個類的時候,修飾許可權符的規則:

1.外部類:public、(default)

2.成員內部類:public、protected、(default)、private

3.區域性內部類:無

如果介面的實現類(或者是父類的子類)只需要使用唯一一次,那麼這種情況下,就可以省略該類的定義,而改為使用匿名內部類。

public inte***ce myinte***ce
public class cat implements myinte***ce

}

public class mymain

}

匿名內部類實現

public inte***ce myinte***ce
public class mymain

}; //別忘了分號

}}

或者不用物件名

public class mymain

}.show(); //一次性的方法呼叫

}}

成員內部類,區域性內部類,靜態內部類,匿名內部類

成員內部類 class demo1 innerclass a 內部類概述 b 內部類訪問特點 a 內部類可以直接訪問外部類的成員,包括私有。b 外部類要訪問內部類的成員,必須建立物件。外部類名.內部類名 物件名 外部類物件.內部類物件 class outer class demo2 innercla...

靜態內部類,成員內部類,區域性內部類,匿名內部類

一 靜態內部類 它是用static修飾的,在訪問限制上它只能訪問外部類中的static所修飾的成員變數或者是方法 演示 public class test 01 public static void main string args 二 成員內部類 成員內部類是最普通的內部類,它可以無條件訪問外部類...

匿名內部類,成員內部類,區域性內部類,靜態內部類

在類的成員位置定義乙個內部類,相當於成員的屬性。在類方法中呼叫成員內部類的屬性和方法需要先建立乙個物件,通過物件來訪問成員內部類中的屬性和方法。在內部類中可以直接呼叫外部類的靜態屬性,方法和非靜態屬性,方法 成員內部類物件建立方法 package test public class innercla...