在Java中,this
关键字是一个引用变量,它指向当前对象。这个引用可以用于访问当前对象的成员(包括方法和属性)。
以下是this
关键字的一些常见用途:
this
来区分它们。例如:public class MyClass {
private int x;
public void setX(int x) {
this.x = x; // 使用this引用当前对象的属性x
}
}
this()
来调用同一个类中的另一个构造器。这有助于避免代码重复。例如:public class MyClass {
private int x;
private int y;
public MyClass() {
this(0, 0); // 调用另一个构造器
}
public MyClass(int x, int y) {
this.x = x;
this.y = y;
}
}
return this;
。这在链式调用中特别有用。例如:public class MyClass {
private int x;
public MyClass setX(int x) {
this.x = x;
return this; // 返回当前对象以支持链式调用
}
}
super()
关键字。但是,如果父类没有默认构造器(即没有无参数的构造器),则需要使用this()
来调用父类的有参构造器。例如:public class ParentClass {
private int a;
public ParentClass(int a) {
this.a = a;
}
}
public class ChildClass extends ParentClass {
private int b;
public ChildClass() {
super(1); // 调用父类的有参构造器
this.b = 2;
}
}
注意:在上面的例子中,ChildClass
的构造器使用了this()
来调用父类的有参构造器,而不是super()
。这是因为父类没有默认构造器。