【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
    • 只能创建匿名内部类的一个实例
    • 匿名内部类为局部内部类,因此局部内部类的限制都对其有效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章