我们使用java这类高级编程语言就是因为,他们能为我们做一部分事情。我们最好是在需要用到this的地方用this,其他地方不要用this,保持一致性。
如下这个类中,append要需要返回对象本身就可以用到this。
public class ThisDemo {
StringBuilder builder;
String charString = "";
public ThisDemo append(String text){
charString += text;
return this; //返回对象本身
}
@Override
public String toString() {
return charString;
}
}
观察StringBuilder可以发现,append方法就是返回this,如下。
public StringBuilder append(String str) {
super.append(str);
return this;
}
实质上在调用方法时候,jvm会自动帮我们传递一个对象进去。比如
ThisDemo demo = new ThisDemo();
demo.append("a");
实质上是这样的。当然,代码是不能这么写的。
append(demo,"a");
还有几种场景,可能会用到this关键字
1)构造器调用构造器
public ThisDemo(String name,int age){
this(name);
this.age = age;
}
2)方法中传递对象参数
class Peeler{
static Apple peel(Apple apple){
//剥皮的操作
return apple;
}
}
class Apple{
Apple getPeeled(){
return Peeler.peel(this);
}
}
class Person{
public void eat(Apple apple){
Apple peeled = apple.getPeeled();
System.out.println("真好吃");
}
}
3)作为return的参数