关于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的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值