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條經(jīng)驗 獲得超7個贊
它沒有被初始化,因為它是您的實例成員NonStaticInitializationTest
,這意味著您必須為該類創(chuàng)建一個實例才能使該成員存在。
一旦你創(chuàng)建了那個實例,你的nonStatic2
實例就會被創(chuàng)建,但目前,你只在你的 main 方法中工作,它是一個靜態(tài)成員,不需要它的類的實例。
添加回答
舉報
0/150
提交
取消