This question already has answers here:
Why doesn't Java initialize Array Objects?
                                
                                    (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