关于java,this的应用

我们使用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的参数

你可能感兴趣的:(java)