一、值的比较
基本数据类型是值比较("=="),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;
}
}