学习Java中的this用法

博主本人在学习this用法时,看书本都搞了很久才明白,现在就将所理解的,和怎么用分享给大家,如果有哪里写的不对,就请指出来~

上代码:(未使用this)

import java.util.*;

public class chapterFive {
    int a;
    int b;

    public void setData(int a, int b){
        a = a;
        b = b;
    }

    public static void main(String[] args){
        chapterFive p = new chapterFive();
        p.setData(1,2);
        System.out.println("p.a = " + p.a);
        System.out.println("p.b = " + p.b);
    }
}

这段代码跑出的结果是:
在这里插入图片描述
有可能会有疑问了,在主函数main()里不是传入参数1 和 2给setData()了嘛,为什么输出的结果是0 呢?
这是因为在主函数main()里是p.a 和 p.b 来调用类中的数据成员,而没用给类的数据成员进行赋值,所以他们的初始值都是0.

如果还是看不懂的话,再来一段代码未有this关键字

import java.util.*;

public class chapterFive {
    int a;
    boolean b;

    public void setData(int a, boolean b){
        a = a;
        b = b;
    }

    public static void main(String[] args){
        chapterFive p = new chapterFive();
        p.setData(1,false);
        System.out.println("p.a = " + p.a);
        System.out.println("p.b = " + p.b);
    }
}

结果如下:
在这里插入图片描述
这个结果还是显示default value.

下面,博主将粘贴各个基本数据类型的default value, 这或许对理解this有所帮助
在这里插入图片描述


如果代码变一下,就可以看到了结果有变化。

import java.util.*;

public class chapterFive {
    int a;
    int b;

    public void setData(int a, int b){
        this.a = a;
        this.b = b;
    }

    public static void main(String[] args){
        chapterFive p = new chapterFive();
        p.setData(1,2);
        System.out.println("p.a = " + p.a);
        System.out.println("p.b = " + p.b);
    }
}

结果如下:
在这里插入图片描述
使用了this 就能给类的数据成员赋值。
总结:(个人理解)
其实这个this 代表了class chapterFive了,用术语来说就是reference (引用), 用这个this来给类中数据成员赋值。
没有这个this, 就不能给类成员赋值, 到最后输出都是default value.


如果觉得不错,就用点赞或者关注来代替五星好评~
谢谢~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值