this关键字用于引用当前对象的实例变量,解决参数与成员变量同名时的歧义;可显式调用本类其他构造方法(this())或实例方法(this.方法名());不能在静态上下文中使用。

在 Java 方法内部,this 关键字用于明确引用当前对象的实例变量(即类的属性),尤其当局部变量或参数名与实例变量同名时,用 this.属性名 可以避免歧义。
区分同名的参数和实例变量
这是 this 最常见的用途。构造方法或普通方法中,若参数名和实例变量名相同,必须用 this 指明要赋值给哪个变量。
例如:
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 指参数
}
}
- 不加
this,编译器默认使用局部变量/参数,导致赋值失败 -
this在这里不是必需语法(比如变量名不重叠时可省略),但它是清晰、规范的写法
在普通方法中显式访问当前对象的属性
即使没有命名冲突,也可以用 this.属性名 明确表示操作的是当前对象的实例变量,增强可读性。
例如:
public void introduce() {
System.out.println("我是 " + this.name + ",今年 " + this.age + " 岁。");
}
- 此处
this.name和直接写name效果一样,但加上this更容易看出这是实例成员而非静态变量或局部变量 - 对团队协作或复杂逻辑中的维护有帮助
调用当前类的其他实例方法或构造方法
this() 可用于构造方法中调用本类的其他构造方法(必须是第一行);this.方法名() 可用于调用当前对象的其他实例方法。
-
this();或this(参数);:只出现在构造方法首行,实现构造器重载的复用 -
this.sayHello();:在实例方法中调用同类另一个实例方法,强调“本对象执行该行为” - 注意:
this不能在静态方法中使用,因为静态方法不属于任何具体对象
不能用 this 的情况
this 是对当前对象的引用,所以它只在实例上下文中有效。
- 静态方法(
static)中禁止使用this,编译会报错 - 静态变量或静态块中也不能使用
this - 局部内部类中若要访问外部类实例变量,需用
外部类名.this.变量名,而不是单纯this
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











