内部类的分类

  1. 实例内部类

    直接定义在类中的,在类的前面没有任何一个修饰符,是属于对象的,而不是属于类的

    在实例内部类中不能有静态成员,因为内部类是属于对象的,不是属于类的

  2. 静态内部类

    在内部类的前面加上一个 static

    不需要创建外部类对象的,就可以直接使用,直接用 外部类名.xxx 就可以使用

    在静态类中是没有外部类的引用的

    静态内部类是可以访问外部类的静态成员的

  3. 局部内部类

    定义在方法内的内部类

    不能使用一些修饰 public private ...

    只能在定义的方法中使用

    不能包含静态变量

    可以包含局部变量,使用的变量的本质是 final

  4. 匿名内部类

    一种局部内部类的特殊情况

    匿名内部类必须要有父类或者实现的接口

访问性

外部类是不能直接访问内部类中的成员的

内部类可以直接访问外部类的成员