this用于区分同名形参与实例变量,避免赋值歧义;只能在非静态上下文中使用,不可用于静态方法或访问静态属性。

在 Java 中,this 关键字用于引用当前对象本身,最常见用途之一就是**区分形参名与实例变量名相同的情况**,从而明确访问本类的实例属性。
为什么需要 this 访问实例属性?
当方法(尤其是构造器或 setter)的参数名和类的实例变量名相同时,直接使用变量名会访问到参数(局部变量),而非实例变量。此时必须用 this.变量名 显式指定访问的是当前对象的实例属性。
典型场景:构造器中初始化同名字段
例如:
<font size="2">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.age 指实例属性,age 指参数
}
}</font>
- 不写
this.,赋值语句name = name实际是把参数赋给自己,实例属性未被修改 -
this.name明确表示“当前对象的 name 属性”,避免歧义
其他可用 this 访问实例属性的地方
除构造器外,以下情况也常需 this:
-
setter 方法中:如
public void setName(String name) { this.name = name; } -
实例方法中调用本类其他实例方法或属性时(虽可省略,但显式写出更清晰):
this.getName()、return this.name; -
返回当前对象引用(链式调用):
return this;
注意点
this 只能在**非静态上下文**(即实例方法、构造器)中使用,不能在 static 方法或静态代码块中出现,因为此时尚无“当前对象”。
静态属性属于类,应通过 类名.静态属性 访问,不能用 this.静态属性 —— 编译会报错。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











