this关键字用于引用当前对象,在实例方法中可省略但显式使用合法;构造器中用this()调用本类其他构造器且须首行;解决成员变量与参数同名冲突时必须用this.;静态方法中禁止使用this。

在 Java 中,this 关键字用于表示当前对象的引用。在类内部调用本类的方法时,通常不需要显式写 this —— 直接调用方法名即可;但当你需要明确区分或解决命名冲突时,才显式使用 this。
下面分几种常见情况说明怎么写:
调用本类的普通实例方法
直接写方法名就行,this 可省略,但加上也合法:
public class Person {
private String name;
public Person(String name) {
this.name = name; // 这里 this 是必须的(区分参数和成员变量)
}
public void introduce() {
System.out.println("Hello, I'm " + name);
}
public void greet() {
introduce(); // ✅ 推荐:简洁,等价于 this.introduce()
this.introduce(); // ✅ 合法:显式用 this 调用
}
}
在构造器中调用本类其他构造器(必须用 this(...))
这是 this 的特殊用法,必须放在第一行,且只能出现一次:
public class Person {
private String name;
private int age;
public Person(String name) {
this(name, 0); // ✅ 调用另一个构造器
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
解决参数名与成员变量名冲突(最常见场景)
这时 this.成员变量 明确指代当前对象的字段:
public void setName(String name) {
this.name = name; // ✅ this.name 指成员变量,name 指参数
}
静态方法中不能使用 this
因为 this 代表当前实例,而静态方法不属于任何实例:
public static void printInfo() {
// this.introduce(); // ❌ 编译错误:无法从静态上下文中引用 this
}
不复杂但容易忽略
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











