// Object类
// equals()方法
// 演示重写equals()方法判断两个对象是否相等,并将结果打印到控制台。
package ch04;
// 图书类
public class Book {
String isbn;// ISBN
String name;// 书名
double price;// 价格
public boolean equals(Object obj){
if(this == obj)//如果是同一个实例,则相等
return true;
if(obj == null)//如果obj为null,不可能相等
return false;
if(getClass()!=obj.getClass())//如果类型不同,认为不相
等
return false;
Book other=(Book)obj;
if(isbn==null){
//当前实例isbn为空,obj的isbn不为空,则不相等
if(other.isbn!=null)
return false;
}else if(!isbn.equals(other.isbn))//isbn不同,则不相等
return false;
if(name == null){
//当前实例name为空,obj的name不为空,则不相等
if(other.name!=null)
return false;
}else if(!name.equals(other.name))//name不同,则不相等
return false;
//price不同,则不相等
if(Double.doubleToLongBits(price)
!=Double.doubleToLongBits
(other.price))
return false;
return true;//其余情况,认为相等
}
}