在Java中,构造函数的调用时机是在创建对象时自动发生的。当你使用关键字new
来创建一个类的实例时,构造函数会被调用。以下是构造函数调用时机的详细解释:
- 当创建一个新对象时,Java虚拟机(JVM)会分配内存空间给这个新对象。
- 接下来,JVM会调用类的默认构造函数(如果没有定义任何构造函数的话)或者指定的构造函数来初始化对象的属性。
- 构造函数执行完毕后,对象就被创建成功了,你可以使用这个对象来调用其他方法或访问属性。
以下是一个简单的Java类示例,展示了构造函数的调用时机:
public class MyClass {
private String name;
// 默认构造函数
public MyClass() {
System.out.println("Default constructor called");
}
// 带参数的构造函数
public MyClass(String name) {
this.name = name;
System.out.println("Parameterized constructor called");
}
public static void main(String[] args) {
// 调用默认构造函数创建对象
MyClass obj1 = new MyClass();
// 调用带参数的构造函数创建对象
MyClass obj2 = new MyClass("John Doe");
}
}
输出结果:
Default constructor called
Parameterized constructor called
在这个例子中,当我们使用new MyClass()
创建一个MyClass
对象时,默认构造函数被调用。当我们使用new MyClass("John Doe")
创建一个MyClass
对象时,带参数的构造函数被调用。