java中this关键字的使用

本文详细解析了Java中的this关键字,涉及成员变量引用、构造方法递归调用及方法内调用对象,通过实例演示其在区分参数和对象变量、构造方法链式调用中的作用。

hello,大家好,这里是可傥。说完final和static之后,今天我们继续来聊java中的关键字 this。 《JAVA编程思想》中对this是这么介绍的:this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。我觉得说的很明白。this就是表示当前对象,即指向当前对象。下面具体展开this的用法。

一、成员变量

如下面代码:

public class User {
    private String name;

    public User(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;//以this来区分局部变量和成员变量
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

复制代码

大家应该都用过setter的方法,里面this.name = name;假设没有this,那么如何来区分调用setter方法的对象值和参数呢?所以this调用了该对象的成员变量name,把形参的值赋予对象中的name。

二、构造方法

一个类必须拥有大于等于1的构造方法,而在构造方法中,也可以用this去调用该对象的其他构造方法。如下面代码:

public class User {
    private String name;

    public User(String name){
        this.name = name;
    }

    public User(){
        this("ketang");
        System.out.println("this在构造方法中必须放在最前面");
        //放后面会报错:(编译器的规定)
        //Call to 'this()' must be first statement in constructor body
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}
复制代码

构造方法中调用其他构造方法,我们可以用this来表示。

三、调用方法

this代表类的当前对象,对象可以调用方法,this也可以调用。某方法返回值为某类的时候,某个该类对象去调用该方法的时候,也可以通过return this表示返回该对象。


作者:可傥
链接:https://juejin.cn/post/7005197733238112292
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值