必须在构造方法或setter方法中参数名与实例变量同名时使用this,以区分局部变量和实例变量;还可用于调用本类其他构造方法(首行),但不可在静态方法中使用。

在 Java 中,this 关键字用于引用当前对象的实例,当局部变量或参数名与实例变量同名时,用 this.变量名 可以明确访问本类的实例变量。
什么时候必须用 this 访问实例变量
最常见场景是构造方法或 setter 方法中,参数名和实例变量名相同时,避免歧义:
- 不加
this会访问参数(局部作用域),而非实例变量 - 加
this.name才能明确赋值给当前对象的name字段
标准写法示例
以下是一个典型构造方法中的用法:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name; // this.name 指实例变量,name 指参数
this.age = age; // 同理
}
}
其他可用场景
this 不仅限于构造方法,也可用于普通方法中区分同名变量:
- 在 setter 方法里:
this.name = name; - 在普通方法中,如果形参或局部变量遮蔽了实例变量,需用
this显式访问 - 调用本类其他构造方法(必须是第一行):
this(18);
注意事项
不需要也不建议在所有地方滥用 this:
- 没有命名冲突时,直接写
name更简洁清晰 -
this不能在静态方法中使用(因为静态方法不属于任何实例) - IDE(如 IntelliJ、Eclipse)常自动补全
this.,但应理解其必要性再决定是否保留
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











