首页 > 解决方案 > 在制作自定义数据类型的数组时调用哪个构造函数?

问题描述

class Student
{
    private String name;
    private int rollno;
}

public void someMethod()
{
    Student s = new Student[2];  // line 1
    // do something here
}

在为数组实例化对象时,是否在第 1 行调用了构造函数?如果是并且它是默认的,假设我们从我们这边编写了一个参数化的构造函数。既然 JVM 提供的默认构造函数不再存在,那么现在调用什么?如果有人可以解释在执行第 1 行中的语句时发生的确切步骤,那将非常有帮助。谢谢。

标签: javaarraysobjectjvminstantiation

解决方案


在为数组实例化对象时,是在第 1 行调用的构造函数

不,不会调用 Student 构造函数。它只分配一个大小为 2 的 Student 类型的数组对象。数组中的所有元素都将初始化为null

分配给数组元素时,您必须创建一个新的 Student 对象。为此,您可能正在调用 Student 类的构造函数。

s[0] = new Student();

目前,Student 类只有默认构造函数。


推荐阅读