在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
对象时,带参数的构造函数被调用。