创建一个n * n MyClass数组会创建实例还是其他什么?

时间:2014-04-09 02:31:22

标签: java

假设有一个MyObject类,它有一个MyClass()构造函数并且已正确实现。

当我们调用那行代码时,它会创建MyClass对象的实例还是会发生其他事情?

编辑:显然这个问题并不是很受欢迎。如果它含糊不清,我很抱歉。这只是一个要求T / F的作业问题。

我打算问: 如果我们有 MyClass [] [] x = new MyClass [n] [n]; //其中n是数字 它会创建N * n个MyClass对象的实例,还是只创建n * n个空引用?

事实证明

MyClass[][] x = new MyClass[n][n]; // where n is a number
x[0][0] = new MyClass();

不同
MyClass x = new MyClass();

1 个答案:

答案 0 :(得分:1)

如果Array是任何对象,则Array中的每个插槽最初都是null(原始数据类型只会产生其默认值)。就像String x;其中x将是null一样,在这种情况下,它是null值的数组。

Array仍然是为它创建的对象类型,例如String,只有所有的插槽都是null并且需要实例化。例如bigArray[1] = new String("Hello!");

如果您希望数组包含某种默认值,则需要填充数组。

MyObject array = new MyObject[3]; //New array that can hold three
for(int i = 0; i < array.length; i++){ //Start i at zero, while it's less than the spots in the array, and add one every time
    array[i] = new MyObject(); //Set the spot to a "real" object now.
}