Java构造方法用于初始化对象,无返回类型且名须与类名一致;重载需满足方法名相同、参数个数/类型/顺序不同;可用this()调用本类其他构造方法,但须首行且不循环。

Java 构造方法是用来初始化新创建对象的特殊方法,它没有返回类型(连 void 都不能写),名字必须和类名完全一致。重载就是在一个类里写多个这样的构造方法,靠参数个数、类型或顺序不同来区分,让对象能按需初始化。
构造方法的基本写法
每个构造方法都以类名开头,后面跟括号和花括号。不写任何构造方法时,编译器会自动补一个空的无参构造;但只要写了任意一个构造方法,这个默认的就没了——想保留就得手动再写。
- 无参构造:public Student() { this.name = "未知"; this.age = 0; }
- 单参构造:public Student(String name) { this.name = name; this.age = 0; }
- 双参构造:public Student(String name, int age) { this.name = name; this.age = age; }
重载的三个硬性条件
只有同时满足下面三点,Java 才认为是合法重载:
- 方法名必须等于类名(这是构造方法的前提)
- 参数个数不同,比如无参、单参、双参
- 或参数类型不同,比如 (String) 和 (int);或参数顺序不同,比如 (String, int) 和 (int, String)
this() 调用复用逻辑
为避免重复赋值,可用 this() 在一个构造方法里调用本类另一个构造方法,但必须遵守:
- 只能出现在第一行
- 每个构造方法最多调用一次
- 不能和 super() 同时出现
- 不能形成循环调用,比如 A → B → A
例如:public Student(String name) { this(name, 0); } —— 复用双参构造,年龄自动设为 0。
哪些写法是不允许的
以下操作会导致编译失败,要特别注意:
- 用 static、final、abstract 修饰构造方法
- 在普通方法里写 this()
- 把 this() 写在第二行或更后
- 只靠返回类型不同来“重载”(Java 不支持)
- 仅靠访问修饰符(如 public/private)或 throws 异常声明不同来区分
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











