在制作自定义数据类型的数组时调用哪个构造函数?
Which constructor is called while making the array of a custom data type?
class Student
{
private String name;
private int rollno;
}
public void someMethod()
{
Student s = new Student[2]; // line 1
// do something here
}
在为数组实例化对象时是否在第 1 行调用了构造函数?如果是并且它是默认的,假设我们从我们这边编写了一个参数化的构造函数。既然 JVM 提供的默认构造函数不存在了,现在调用什么?如果有人可以解释执行第 1 行中的语句时发生的确切步骤,那将非常有帮助。谢谢
Is a constructor called in line 1 while instantiating the objects for the array
没有。不调用 Student 构造函数。它只分配一个 Student 类型的数组对象,大小为 2。数组中的所有元素将被初始化为 null.
当您分配给数组元素时,您必须创建一个新的 Student 对象。为此,您可能正在调用 Student class 构造函数。
s[0] = new Student();
目前,Student class 只有默认构造函数。
class Student
{
private String name;
private int rollno;
}
public void someMethod()
{
Student s = new Student[2]; // line 1
// do something here
}
在为数组实例化对象时是否在第 1 行调用了构造函数?如果是并且它是默认的,假设我们从我们这边编写了一个参数化的构造函数。既然 JVM 提供的默认构造函数不存在了,现在调用什么?如果有人可以解释执行第 1 行中的语句时发生的确切步骤,那将非常有帮助。谢谢
Is a constructor called in line 1 while instantiating the objects for the array
没有。不调用 Student 构造函数。它只分配一个 Student 类型的数组对象,大小为 2。数组中的所有元素将被初始化为 null.
当您分配给数组元素时,您必须创建一个新的 Student 对象。为此,您可能正在调用 Student class 构造函数。
s[0] = new Student();
目前,Student class 只有默认构造函数。