内部类

内部类、方法内部类、局部代码块内部定义的类

(1)非静态内部类

class A{
  class Inner{
    //它的实例属于外部类
  }
}

  • 非静态内部类对象,必须依赖于外部对象才能存在

  A a = new A();

  Inner i = a.new Inner();

  • 辅助外部对象,来封装局部的运算逻辑

 

(2)静态内部类

class A{
  static class Inner{
   //和外部类无关,可以直接创建实例
  }
}
  • 和外部类无关,可以直接创建实例,他和一个普通的类没有区别
  • 静态内部类,可选
  • 两种类型,关系紧密时,可以选择静态内部类
  Inner i = new Inner();

(3)局部内部类

class A{
  void f(){
    class Inner(){

    }
  }
}

 

(4)匿名内部类

Weapon w = new Weapon(){...};

  • 大括号是匿名类
  • new 新建匿名类的实例
  • Weapon作为匿名类的父类型
  • 小括号super() ,super(参数数据)

 

posted @ 2019-08-27 23:30  我爱si搬砖  阅读(120)  评论(0)    收藏  举报