Java类的构造方法主要用于初始化对象的状态。构造方法在以下场景中使用:
- 创建对象时自动调用:当你使用
new
关键字创建一个类的实例时,构造方法会自动被调用。这是构造方法的主要用途。
public class MyClass { private int x; public MyClass(int x) { this.x = x; } } MyClass obj = new MyClass(5); // 调用构造方法,传入参数5,初始化obj对象的x值为5
- 重载构造方法:为了提供不同的初始化选项,可以在类中定义多个构造方法,这被称为构造方法重载。
public class MyClass { private int x; private String y; public MyClass(int x) { this(x, "default"); } public MyClass(int x, String y) { this.x = x; this.y = y; } } MyClass obj1 = new MyClass(5); // 调用第一个重载构造方法,传入参数5,y值为"default" MyClass obj2 = new MyClass(5, "custom"); // 调用第二个重载构造方法,传入参数5和"custom",分别初始化x和y值
- 调用父类构造方法:在自定义构造方法中,可以使用
super
关键字调用父类的构造方法,以便在初始化子类对象时同时初始化父类的状态。
public class ParentClass { private int x; public ParentClass(int x) { this.x = x; } } public class ChildClass extends ParentClass { private String y; public ChildClass(int x, String y) { super(x); // 调用父类构造方法,传入参数x,初始化父类状态 this.y = y; } } ChildClass obj = new ChildClass(5, "custom"); // 调用ChildClass构造方法,同时调用父类ParentClass的构造方法
- 初始化对象列表:在创建对象列表时,可以使用构造方法为每个对象设置初始状态。
public class MyClass { private int x; public MyClass(int x) { this.x = x; } } ListobjList = new ArrayList<>(); objList.add(new MyClass(1)); // 使用构造方法创建MyClass对象,并将其添加到列表中 objList.add(new MyClass(2)); // 使用构造方法创建MyClass对象,并将其添加到列表中