当方法参数或局部变量与成员变量同名时,需用 this 明确指代当前对象的成员变量,因编译器默认优先使用局部变量;this 只能在非静态方法和构造方法中使用。

当方法参数或局部变量与类的成员变量同名时,用 this 可以明确指代当前对象的成员变量。
为什么需要 this
Java 允许局部变量与成员变量重名,但编译器默认优先使用局部变量。如果不加区分,就无法访问同名的成员变量。this 是当前对象的引用,通过 this.成员变量名 就能准确访问类的字段。
常见写法:构造方法中初始化成员变量
这是最典型的场景。例如:
private String name;
private int age;
public Person(String name, int age) {
this.name = name; // this.name 指成员变量,name 指参数
this.age = age;
}
}
在普通方法中区分同名变量
当方法形参、局部变量与成员变量重名时,同样适用:
- 用 this.fieldName 访问成员变量
- 直接用 fieldName 访问局部变量或参数
- 避免在同一个作用域内无意义地重复定义同名变量
注意点
this 只能在非静态方法和构造方法中使用,因为静态上下文不依赖具体对象实例。在 static 方法里使用 this 会编译报错。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











