this关键字可用于构造方法间调用,必须位于第一行,不可与super()共存,且不能循环或多次调用,能有效减少重复代码并提升可维护性。

在Java中,this关键字不仅可以用来引用当前对象的属性和方法,还可以用来从一个构造方法中调用同一个类中的另一个构造方法。这种用法称为构造方法重载调用,能有效避免代码重复,提升可维护性。
使用this()调用其他构造方法
通过 this(参数列表) 的形式,可以在一个构造方法中调用本类的另一个构造方法。必须注意的是,这条语句必须出现在构造方法的第一行。
例如:
public class Person {private String name;
private int age;
// 无参构造方法
public Person() {
this("未知", 0); // 调用两个参数的构造方法
}
// 只传名字的构造方法
public Person(String name) {
this(name, 18); // 调用两个参数的构造方法,默认年龄18
}
// 两个参数的构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
调用规则和限制
使用 this() 调用构造方法时,有几点必须遵守:
立即学习“Java免费学习笔记(深入)”;
- 必须放在第一行:this() 调用必须是构造方法中的第一条语句,否则编译报错。
- 不能循环调用:比如构造方法A调用B,B又调用A,会导致编译错误。
- 只能调用一次:一个构造方法中不能多次使用 this() 调用其他构造方法。
- 不能和 super() 同时出现:如果类有父类,this() 和 super() 都要放在第一行,因此二者不能共存于同一个构造方法中。
实际应用场景
当多个构造方法具有相似逻辑时,可以用一个“全参构造方法”作为核心,其他构造方法通过 this() 将参数传递过去,简化初始化流程。
比如在创建对象时提供默认值、简化调用接口,或者实现灵活的实例化方式,this() 调用就非常有用。
基本上就这些。合理使用 this() 能让构造方法之间协作更清晰,代码更简洁。只要注意调用位置和避免循环即可。










