如果要判断2个对象是否相等,就要对该对象的属性内容进行比较,如果属性内容相同,则说明是同一个对象,标准方法如下:
class Book{
private String title;
private double price;
public Book(String title,double price){
this.title=title;
this.price=price;
}
public boolean equals(Object obj){ // 重写equals
if(this==obj){
return true;
}
if(obj==null){
return false;
}
if(!(obj instanceof Book)){ //不是本类实例
return false;
}
Book book=(Book)obj;
if(this.title.equals(book.title) && this.price==book.price){
return true;
}
return false;
}
}
public class compare{
public static void main(String[] args){
Book b1=new Book("小小说",99.9);
Book b2=new Book("小小说",99.9);
System.out.println(b1.equals(b2));
}
}
//运行结果 :true
记住:
1.Object 中的 “equals()” 比较的是"同一",比较内存地址是否相等
2.String 中的 “equals()” 比较的是"相等",因为String类中只是像上面一样复写了 equals() 方法而已。