Java this
Java this 关键字
this 在 Java 中,方法或构造函数中的 this 关键字指的是当前对象。
this 关键字通常用于避免类属性与方法或构造函数参数同名时造成的混淆。
访问类属性
有时构造函数或方法会有一个与类变量同名的参数。在这种情况下,该参数会暂时隐藏该方法或构造函数内部的类变量。
要引用类变量而不是参数,可以使用this关键字:
示例
public class Main { int x; // 类变量 x // 带一个参数 x 的构造函数 public Main(int x) { this.x = x; // 指的是类变量 x}public static void main(String[] args) { // 创建一个 Main 对象,并将值 5 传递给构造函数。 Main myObj = new Main(5); System.out.println("Value of x = " + myObj.x);}}
输出:
Value of x = 5
提示: 可以将 this.x = x; 理解为:"this.x(类变量)获取 x(参数)的值。"
如果没有this,上面的代码x = x;会将参数x设置为自身,并且类变量将保持未初始化状态(0)。
从另一个构造函数调用另一个构造函数
您还可以使用 this() 来调用同一个类中的另一个构造函数。
当您想提供默认值或重用初始化代码而不是重复编写时,这非常有用。
示例
public class Main {
int modelYear;
String modelName;
// 带一个参数的构造函数
public Main(String modelName) {
// 调用双参数构造函数以重用代码并设置默认年份
this(2020, modelName);
}
// 带两个参数的构造函数
public Main(int modelYear, String modelName) {
// 使用"this"为类变量赋值
this.modelYear = modelYear;
this.modelName = modelName;
}
// 打印汽车信息的方法
public void printInfo() {
System.out.println(modelYear + " " + modelName);
}
public static void main(String[] args) {
// 创建一辆仅包含车型名称的汽车(使用默认年份)
Main car1 = new Main("Corvette");
// 创建一辆包含车型年份和名称的汽车
Main car2 = new Main(1969, "Mustang");
car1.printInfo();
car2.printInfo();
}
}
输出:
2020 Corvette
1969 Mustang
注意:对this()的调用必须是构造函数中的第一条语句。
何时使用 this?
- 当构造函数或方法的参数与类变量同名时,请使用
this来正确更新类变量。 - 调用同一类中的另一个构造函数并重用代码。

