gpt4 book ai didi

java - 创建一个 n*n 的 MyClass 数组会创建实例还是其他东西?

转载 作者:行者123 更新时间:2023-12-01 13:10:05 26 4
gpt4 key购买 nike

假设有一个类 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();

最佳答案

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

数组仍然是为其创建的相同类型的对象,例如字符串,只是所有槽都是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.
}

关于java - 创建一个 n*n 的 MyClass 数组会创建实例还是其他东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com