【java基礎】內部類四種分析。

  java中把一個類定義到另外一個類的內部,稱爲內部類。
  內部類常見分爲四種:靜態內部類、成員內部類、局部內部類、匿名內部類。
  代碼展示:

public class OuterClass {

    //靜態內部類
    static class InnerClass1{}

    //成員內部類
    class InnerClass2{}

    public void func(){
        //局部內部類
        class InnerClass3{}
    }
}
public class MyFrame extends Frame {
    public MyFrame(){
        addWindowListener(new WindowAdapter() { //匿名內部類
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
            }
        });
    }
}
  1. 靜態內部類
      被static關鍵字修飾的內部類。不依賴於外部類實例而被實例化。只能訪問外部類的靜態變量、靜態方法。
  2. 成員內部類
      靜態內部類去掉static,則爲成員內部類。可以自由訪問外部類中的變量、方法而不管是不是靜態的。另外,非靜態內部類不能有靜態的成員。
      局部內部類實例化需要先實例化外部類:
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass2 innerClass2 =
        outerClass.new InnerClass2();
  1. 局部內部類
      定義在一個代碼塊中的內部類。作用範圍是整個代碼塊。不能被public、protected、private以及static修飾,只能訪問方法中定義爲final類型的局部變量。
  2. 匿名內部類
      一種沒有類名的內部類。不能使用關鍵字class、extends、implements,沒有構造函數,必須繼承其他類或者實現其他接口。
    • 匿名內部類沒有構造器
    • 不能定義靜態成員、方法、類
    • 不能是public、protected、private、static
    • 只能創建匿名內部類的一個實例
    • 匿名內部類爲局部內部類,因此局部內部類的限制都對其有效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章