class nonStatic1 { nonStatic2 n2 = new nonStatic2(); nonStatic1() { this.print(); } void print() { System.out.println("insidenonStatic1"); } } class nonStatic2 { nonStatic2() { this.print(); } void print() { System.out.println("insidenonStatic2"); } }class nonStatic3 { nonStatic1 n1 = new nonStatic1(); nonStatic3() { this.print(); } void print() { System.out.println("insidenonStatic3"); }}public class NonStaticInitializationTest { nonStatic2 n2 = new nonStatic2(); // <-- Never initialized!! public static void main(String args[]) { System.out.println("initialising n3 through main"); nonStatic3 n3 = new nonStatic3(); }}
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
它没有被初始化,因为它是您的实例成员NonStaticInitializationTest
,这意味着您必须为该类创建一个实例才能使该成员存在。
一旦你创建了那个实例,你的nonStatic2
实例就会被创建,但目前,你只在你的 main 方法中工作,它是一个静态成员,不需要它的类的实例。
添加回答
举报
0/150
提交
取消