This question already has answers here:
Why doesn't Java initialize Array Objects?
(2个答案)
3年前关闭。
我该怎么做才能调用class checker的所有10个对象的构造函数?obj = new checker [10]语句不调用我想知道原因的构造函数?
(2个答案)
3年前关闭。
class checker
{
public checker()
{
System.out.println("In the constructor");
}
}
public class StringTesting {
static String string1;
static String string2;
public static void main(String[] args)
{
checker[] obj;
obj=new checker[10];
}
}
我该怎么做才能调用class checker的所有10个对象的构造函数?obj = new checker [10]语句不调用我想知道原因的构造函数?
最佳答案
您当前的代码不会创建任何checker
类型的对象-它只会创建一个数组,该数组能够保存对checker
类型的对象的引用。最初,数组中的每个元素的值都为null
。重要的是要理解数组元素值不是checker
对象-它们只是引用。例如,多个元素可以保存对同一对象的引用,就像checker
类型的多个变量可以具有引用同一对象的值一样。 (您可以将数组视为变量的集合。)
如果要调用构造函数,则需要显式调用。例如:
// Names fixed to be more conventional
Checker[] checkers = new Checker[10];
for (int i = 0; i < checkers.length; i++) {
checkers[i] = new Checker();
}
关于java - 该语句是否调用构造函数obj = new checker [10]? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36976855/
10-10 18:28