我对以下代码感到困惑,
package test;
public class Test {
FooC fooC = new FooC();
public static void main(String[] args) {
System.out.println("started");
Test t = new Test();
}
public class FooA {
public int[] mData;
public FooA() {
System.out.println("aa");
mData = new int[32];
}
}
public class FooB {
public FooA[] mFooA;
public FooB() {
System.out.println("bb");
mFooA = new FooA[12];
}
}
public class FooC {
public FooB mFooB;
public FooC() {
System.out.println("cc");
mFooB = new FooB();
}
}
}
运行时,输出为:
started
cc
bb
为什么FooA构造函数从不调用?我对Java有点陌生,任何帮助都很多,谢谢!
最佳答案
mFooA = new FooA[12];
->您正在创建一个可以容纳12个FooA实例的数组。您尚未创建这样的FooA实例:new FooA()