为了账号安全,请及时绑定邮箱和手机立即绑定

学习幕友MFrank Java开发教程-实践11

标签:
Java

一、值的比较

https://img1.sycdn.imooc.com//5c199d4500017a5104590241.jpg

基本数据类型是值比较("=="),bytte\short\int\long\float\double\char

二、对象的比较

https://img1.sycdn.imooc.com//5c199f570001132e05350093.jpg

引用类型对象之间的比较:

1、“==”比较的是2个引用是否指向同一个对象。

2、“equals”

String对象重写了(override)Object对象的equals方法,比较的是2个对象的内容是否相等。

其它类对象没有重写Object中的equals方法,默认使用的还是Object方法(比较2个对象的引用是否指向同一个对象)。

https://img1.sycdn.imooc.com//5c19a24e0001d8f006440219.jpg

https://img1.sycdn.imooc.com//5c19a2600001051f04850122.jpg

good1和good2的内容是相等的,为什么equals结果还是false呢?

原因在于Goods类没有重写equals方法,默认使用的还是Object类的引用比较(equals方法)!

https://img1.sycdn.imooc.com//5c19a32f000141bf07480251.jpg

Goods重写了equals方法后,看看执行结果:

https://img1.sycdn.imooc.com//5c19a3570001fb3c05620134.jpg

<1>将比较对象obj转化为Goods类型。

<2>如果obj中的title和Goods中的title相同且obj中的price和Goods中的price相同,那么二者就相同,返回true。

public boolean equals(Object obj){

    Goods tmp = (Goods)obj;

    //title和price指的是本类中的title、price

    if(tmp.getPrice==price&&(tmp.getTitle).equals(title)){

        return true;

    }

}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消