我读到没有外部类的实例就不能创建内部类的实例。但是,当我尝试使用它作为外部类的实例成员创建内部类的实例时,它起作用了。
我知道它是通过对外部类对象的引用来创建内部对象,但这是正确的方法吗?
下面是我的代码片段:
public class TestInner {
private Nonstatic non = null;
private static int access = 4;
public class Nonstatic {
void hello() {
access = 90;
}
}
public static void main(String[] args) {
TestInner outer = new TestInner();
TestInner.Nonstatic innern= outer.new Nonstatic();
System.out.println("Non static obj1 is "+innern);
outer.testinnerObj();
}
public void testinnerObj() {
non = new Nonstatic();
System.out.println("Non static obj2 is "+non);
non.hello();
}
}
Run Code Online (Sandbox Code Playgroud)