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 显式调用当前对象的属性,增强可读性或满足编码规范要求。
立即学习“Java免费学习笔记(深入)”;
-
this.name和直接写name效果相同(在非静态上下文中) - 但显式使用
this能清晰表明这是当前对象的字段,而非局部变量或静态变量 - 某些 IDE 或代码检查工具会建议对所有成员变量加
this.前缀,便于统一识别
注意不能在静态方法中使用 this
this 代表当前实例对象,而静态方法不依赖于任何实例,因此在 static 方法里使用 this 会导致编译错误。
例如以下写法是非法的:
public static void printInfo() {
System.out.println(this.name); // 编译错误:无法从静态上下文中引用非静态变量
}
调用本类其他实例方法或构造器
this 还可用于调用当前对象的其他实例方法(虽通常可省略),或在构造器中调用本类其他构造器(this(...))。
-
this.methodName()显式调用当前对象的实例方法 -
this(...)必须放在构造器第一行,用于构造器链式调用 - 注意:
this()和super()不能同时出现


















