this 关键字是Java中的一个特殊引用,它代表当前对象的引用。它主要用于区分成员变量和局部变量、调用当前对象的方法以及构造函数中调用其他构造函数。下面是对this关键字的详细讲解:
- 区分成员变量和局部变量:在类中,如果一个成员变量与一个局部变量同名,通过使用this关键字可以明确指定成员变量。例如:
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
}
在上面的例子中,this.name表示成员变量name,而name表示方法的局部变量。
- 调用当前对象的方法:在对象的一个方法中,可以使用this关键字调用同一个对象的其他方法。例如:
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public void printName() {
System.out.println(this.getName());
}
public String getName() {
return name;
}
}
在上面的例子中,printName()方法中通过this.getName()调用了同一个对象的getName()方法。
- 在构造函数中调用其他构造函数:在一个类中定义多个构造函数时,可以使用this关键字调用其他构造函数,以减少重复代码。这种调用必须放在构造函数的第一行。例如:
public class Person {
private String name;
private int age;
public Person() {
this("John Doe", 30);
}
public Person(String name) {
this(name, 30);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的例子中,有三个构造函数,分别是默认构造函数、只有name参数的构造函数和有name和age参数的构造函数。在前两个构造函数中使用了this关键字调用了第三个构造函数。
邀请人:堕落飞鸟