java - 在制作自定义数据类型的数组时调用哪个构造函数?
问题描述
class Student
{
private String name;
private int rollno;
}
public void someMethod()
{
Student s = new Student[2]; // line 1
// do something here
}
在为数组实例化对象时,是否在第 1 行调用了构造函数?如果是并且它是默认的,假设我们从我们这边编写了一个参数化的构造函数。既然 JVM 提供的默认构造函数不再存在,那么现在调用什么?如果有人可以解释在执行第 1 行中的语句时发生的确切步骤,那将非常有帮助。谢谢。
解决方案
在为数组实例化对象时,是在第 1 行调用的构造函数
不,不会调用 Student 构造函数。它只分配一个大小为 2 的 Student 类型的数组对象。数组中的所有元素都将初始化为null。
分配给数组元素时,您必须创建一个新的 Student 对象。为此,您可能正在调用 Student 类的构造函数。
s[0] = new Student();
目前,Student 类只有默认构造函数。
推荐阅读
- javascript - 如何使用从 POST 数据中获取列表 - Django
- android - 在房间 db kotlin 中选择查询?
- python - 无论我输入字符串还是整数,如何更改此代码以获得结果?
- sed - SED 用新字符串替换被空格包围的字符串
- ios - 无法在 Swift 中找到正确的 iOS DateFormatter
- linux - 容器和主机的时差问题
- reactjs - 为什么在从事件处理程序分配状态时需要设置组件的值?
- javascript - 从服务器读取另一台机器的文件
- c# - 跨平台 C# 加密:无法生成正确的密钥/选择正确的算法
- go - 无法通过远程 ssh 命令在远程服务器上构建 go 程序