This

作用:明确引用对象

具体例子:

返回当前对象

对象作为参数传递给其他方法时

1
2
3
4
5
6
7
8
9
10
11
class Cat{
private int age = 0;

Cat grow(){ //返回类型时 Cat
age++;
return this;//指向现在的对象
}
void print(){
System.out.println(age);
}
}

访问隐藏的数据成员

需要用到的this的另外一种情况:

如果局部变量与其所属类的数据成员变量重名,需要访问与之重名的数据成员;

例子

1
2
3
4
5
6
class Cat{
private int age;
Cat(int age){
this.age = age;// this.age 是 类内的age
}
}

调用另外一个构造方法

在一个构造方法中,调用类中的另外一个构造方法

形式如下

1
2
3
4
5
6
7
8
9
10
class Cat{
private int age;
Cat(){
this(2) // this(age) 是不对的,执行构造方法时。private int age因为还没开始初始化
System.out.println("xxx");
}
Cat(int age){
this.age = age;
}
}

注意,在里面使用的是this 而不是另外一个构造方法名,因为不允许;

还有 ,this 只出现了一次,出现在Cat()的第一行

其他方法不能调用构造方法