题目:编写Order类,有int型的orderId, String型的orderName,相应的getter()和setter()方法,两个参数的构造器,
重写父类的equals()方法:public boolean equals(Object obj), 并判断测试类中创建的两个对象是否相等。
1. 手动重写
@Override
/**
**重写Object类的equals的方法
*/
public boolean equals(Object obj) {
//判断两个obj的地址值是否相等,如果相等就是同一个对象,返回true
if (this == obj) {
return true;
}
//判断obj对象是否是由Order类或其子类创建
if (obj instanceof Order) {
//如果obj是由Order或其子类创建,则将obj强转为Order类
Order o = (Order)obj;
//注意比较两个类的属性的值是否相等,如果相等返回true
if (this.getOrderId() == o.getOrderId() && this.getOrderName().equals(o.getOrderName())){
return true;
}
}
return false;
}
2. eclipse自动的生成代码
@Override
public boolean equals(Object obj) {
//比较两个对象地址值是否相同
if (this == obj)
return true;
//如果某个对象地址值为空,直接返回false
if (obj == null)
return false;
//比较连个对象是否是同一个类
if (getClass() != obj.getClass())
return false;
//如果两个对象是同一个类,则把obj强转为order类型
Order other = (Order) obj;
//比较连个对象的属性
if (orderId != other.orderId)
return false;
if (orderName == null) {
if (other.orderName != null)
return false;
} else if (!orderName.equals(other.orderName))
return false;
return true;
}