Shi*_*ari 4 java inner-classes
我读到没有外部类的实例就不能创建内部类的实例。但是,当我尝试使用它作为外部类的实例成员创建内部类的实例时,它起作用了。
我知道它是通过对外部类对象的引用来创建内部对象,但这是正确的方法吗?
下面是我的代码片段:
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)
小智 5
你在写“没有外部类的实例就不能创建内部类的实例”。而这正是你正在做的。
首先,您创建一个“外部”类的实例:
TestInner outer = new TestInner();
Run Code Online (Sandbox Code Playgroud)
然后,您创建一个“内部”类的实例——它只存在于外部的范围内:
TestInner.Nonstatic innern= outer.new Nonstatic();
因此,问题可能归结为:是的,您正在静态 main 方法中创建对象。但这并不重要,因为您正在使用在outer.new外部范围内创建它的语法。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |