//  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;//其余情况,认为相等
    }
}