构造方法用于对象创建时初始化成员变量,无返回类型,名称须与类名完全一致;可重载,支持this()调用,编译器仅在无显式构造时提供默认无参构造。

Java 类中的构造方法用于创建对象时初始化成员变量,它没有返回类型(连 void 都不能写),方法名必须和类名完全一致。
构造方法的编写规则
编写构造方法要注意以下几点:
- 方法名必须与类名大小写完全相同;
- 不能有返回值类型,包括
void; - 可以重载:一个类中可定义多个构造方法,只要参数列表不同(参数个数、类型或顺序不同);
- 如果不显式定义任何构造方法,编译器会自动提供一个无参的默认构造方法;但一旦写了任意构造方法,这个默认构造方法就不再自动生成;
- 可以在构造方法中调用
this(...)调用本类其他构造方法,但必须是第一行语句。
常见构造方法写法示例
以一个简单的 Person 类为例:
public class Person {
private String name;
private int age;
// 无参构造方法
public Person() {
this.name = "未知";
this.age = 0;
}
// 有参构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 只传姓名的构造方法,复用已有逻辑
public Person(String name) {
this(name, 18); // 调用两个参数的构造方法
}
}
构造方法的调用方式
构造方法不能被直接调用,只能通过 new 关键字在创建对象时触发:
-
Person p1 = new Person();→ 调用无参构造方法; -
Person p2 = new Person("张三", 25);→ 调用两个参数的构造方法; -
Person p3 = new Person("李四");→ 调用单个String参数的构造方法。
注意:每个 new 表达式对应一次构造方法执行,且只执行一次,发生在对象实例化过程中。
构造方法中常用操作
除了赋值,构造方法还可做些合理初始化工作:
- 校验参数合法性(如年龄不能为负数,抛出
IllegalArgumentException); - 为集合类成员初始化(避免后续
NullPointerException); - 调用
init()等私有初始化方法(保持逻辑清晰); - 不建议在构造方法中调用可被子类重写的方法(可能导致子类字段未初始化就访问)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











