手记

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

一、值的比较

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

二、对象的比较

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

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

2、“equals”

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

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

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

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

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

<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;

    }

}

0人推荐
随时随地看视频
慕课网APP