一、内部类的分类

二、静态内部类介绍
(1)只能访问外部类的静态成员
(2)创建内部类实例时不依赖于外部类实例
在外部类外部创建静态内部类的方式: OuterClass.InnerClass varName = new OuterClass.InnerClassConstructor();
在外部类内部创建静态内部类方式: InnerClass varName = new InnerClassConstructor();
三、非静态内部类
(1)外部类的静态方法或者静态初始化块中不允许使用非静态内部类
(2)不允许在非静态内部类中定义静态成员
在外部类外部创建非静态内部类的方式: OuterClass.InnerClass varName = new OuterClassConstructor.new InnerClassConstructor();
在外部类内部创建非静态内部类的方式: InnerClass varName = new InnerClassConstructor();
四、局部内部类(很少使用)
在外部类方法中定义的类
五、匿名内部类
匿名内部类适合创建那种只需要一次使用的类
new 实现接口() | 父类构造器(实参){类体部分};
