我对以下代码感到困惑,

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()

09-07 06:19