非静态内部类实例化
非静态内部类实例化需要绑定在外部类的实例上,换句话说就是要通过外部类对象来创建其内部类对象
📋格式
外部类对象名.new 内部类名()
OuterClass oc=new OuterClass();
OuterClass.InnerClass ic = oc.new InnerClass();
静态内部类实例化
在 Java 1.6 版本及之前,不能直接访问在外部类之外声明的静态内部类,必须使用外部类名限定符
简单来说,静态内部类需要通过外部类来实例化
📋格式
new 外部类名.内部类名()
StaticInnerClass sic=new OuterClass.StaticInnerClass();
然而,在 Java 1.7 版本及之后的版本中,可以直接访问在外部类之外声明的静态内部类
StaticInnerClass sic = new StaticInnerClass();
测试代码
public class OuterClass {
public class InnerClass{}
public static class StaticInnerClass{}
public static void main(String[] args) {
OuterClass oc=new OuterClass();
InnerClass ic=oc.new InnerClass();
StaticInnerClass sic=new OuterClass.StaticInnerClass();
}
}