Java中的内部类

133 阅读1分钟

一、内部类的分类

二、静态内部类介绍
     (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 实现接口() | 父类构造器(实参){类体部分};