我对以下内容缺乏了解:如果使用“简写”创建内部类的实例,即使我没有创建它的显式实例,访问外部类也不是个好主意吗?Java外部实例生命周期
例如,请考虑下面的代码:
class OuterClass
{
int i;
OuterClass() { i = 2; }
class InnerClass
{
int get_parent_i() { return (OuterClass.this.i); }
}
}
下编译并返回预期的结果(2):
OuterClass.InnerClass ic = new OuterClass().new InnerClass();
System.out.println(ic.get_parent_i());
我的困惑的事实,我没有明确的茎创建一个OuterClass对象来实例化一个InnerClass对象,尽管似乎无论如何都存在。有人能告诉我发生了什么,如果我因任何原因要么访问或忘记幻影实例?
非常感谢!
静态变量与内部类的工作方式无关,也与公共/默认可见性无关。 – Charlie
心灵先生:静态是一种“几乎”单身模式。因为它与每个类都有关系,不管是任何包中的内部类还是外部类。 此外,我试图解释内容的行为。显示内部内容并不总是必须影响外部内容。除了它面临一个静态内容(变量,块,功能)。 –