Java构造方法用于对象初始化,无返回类型且名须与类名严格一致;支持重载、this()调用及访问修饰符,不被继承但可super()调用父类构造。

Java中构造方法用于创建对象时初始化实例变量,它没有返回类型(连void都不能写),方法名必须与类名完全一致。
构造方法的基本语法
构造方法的定义格式如下:
修饰符 类名(参数列表) {
// 方法体,通常用于初始化成员变量
}
例如:
立即学习“Java免费学习笔记(深入)”;
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;
}
}
构造方法的关键规则
定义构造方法时需遵守以下核心规则:
- 方法名必须和所在类的类名**严格一致**(包括大小写)
- 不能声明返回类型,连
void也不允许,否则编译器会当作普通方法处理 - 可以使用任意访问修饰符:
public、protected、default(包内可见)、private(仅限本类内部调用,常用于单例或工具类) - 支持重载:一个类中可定义多个构造方法,只要参数列表不同(数量、类型、顺序任一不同即可)
- 若未显式定义任何构造方法,编译器会自动提供一个无参的默认构造方法;但一旦定义了至少一个构造方法,这个默认构造方法就不再自动生成
this()调用其他构造方法
在一个构造方法中,可用this(参数)调用本类中的其他构造方法,实现代码复用。注意:
-
this()必须是构造方法的第一条语句 - 不能在同一个构造方法中同时出现
this()和super() - 避免循环调用,比如A调B、B又调A,会导致编译错误
示例:
public Person() {
this("匿名", 18); // 调用有参构造
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
构造方法与普通方法的区别
容易混淆的地方在于“看起来像方法”,但本质不同:
- 构造方法只在
new对象时由JVM自动调用,无法被程序员直接调用(不能写obj.Person()) - 普通方法必须有返回类型,构造方法绝对不能写返回类型
- 构造方法执行完毕后,会返回新创建的对象引用;普通方法返回值由
return语句决定 - 子类不会继承父类的构造方法,但可通过
super()显式调用父类构造方法










