继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

叶无道疯人院
关注TA
已关注
手记 97
粉丝 40
获赞 137

一、值的比较

https://img4.mukewang.com/5c199d4500017a5104590241.jpg

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

二、对象的比较

https://img3.mukewang.com/5c199f570001132e05350093.jpg

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

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

2、“equals”

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

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

https://img1.mukewang.com/5c19a24e0001d8f006440219.jpg

https://img3.mukewang.com/5c19a2600001051f04850122.jpg

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

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

https://img3.mukewang.com/5c19a32f000141bf07480251.jpg

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

https://img3.mukewang.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;

    }

}

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP