java 如何构造方法
构造方法的定义
在Java中,构造方法是一种特殊的方法,用于在创建对象时初始化对象的状态。构造方法的名称必须与类名完全相同,且没有返回类型(包括void)。

构造方法的基本语法
public class ClassName {
// 无参构造方法
public ClassName() {
// 初始化代码
}
// 带参数的构造方法
public ClassName(Type param1, Type param2) {
// 使用参数初始化对象
}
}
构造方法的特点
- 构造方法在对象创建时自动调用,通常用于初始化成员变量。
- 如果一个类没有显式定义构造方法,Java会提供一个默认的无参构造方法。
- 如果显式定义了构造方法(无论是否有参数),Java不会提供默认的无参构造方法。
构造方法的重载
可以定义多个构造方法,只要它们的参数列表不同(方法重载)。

public class Person {
private String name;
private int age;
// 无参构造方法
public Person() {
this.name = "Unknown";
this.age = 0;
}
// 带参数的构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
使用this调用其他构造方法
在一个构造方法中,可以通过this()调用同类中的其他构造方法,但必须放在构造方法的第一行。
public class Person {
private String name;
private int age;
public Person() {
this("Unknown", 0); // 调用带参数的构造方法
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
构造方法与继承
- 子类不能继承父类的构造方法,但可以通过
super()调用父类的构造方法。 - 如果子类没有显式调用父类的构造方法,Java会默认调用父类的无参构造方法(
super())。
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age); // 调用父类的构造方法
this.school = school;
}
}
构造方法的访问修饰符
构造方法可以设置为public、protected、private或默认(包私有)。
private构造方法通常用于单例模式或工厂模式。protected构造方法允许子类调用,但禁止其他类直接实例化。
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造方法,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}






