java 中用 this 主要有三个作用:
- 当形参与成员变量重名时,用 this.成员变量来与形参区分
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age; //形参与成员变量重名,这时成员变量前面加上 this. 来区分
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
}
- 调用当前类的成员变量或成员方法时,在前面加上 this ,可增加可读性
public void ShowName() {
String name = this.getName(); //调用当前类的成员方法,加 this. 增加程序的可读性
System.out.println(name);
}
- 用 this() 可调用同一个类中的其他构造函数
//构造函数1
public Person() {
//this(); X //不能自己调自己
//this("zhangsan"); X //构造函数直接不能循环调用
}
//构造函数2
public Person(String name) {
this(); //直接用 this() 调用构造函数1
this.name = name;
}
public Person(String name, int age) {
this(name); //调用构造函数2
this.setAge(age);
}
注意:
- 使用 this() 必须放在构造函数的第一行,放在后面会报错。
- 使用 this 调用本类中的其他构造函数时,至少要有一个构造函数是不用 this 的,不能构成循环调用,自己调用自己的情况。