public class Order {
int orderId;
String OrderName;
//两个参数的构造器
public Order(int orderId,String OrderName){
this.orderId=orderId;
this.OrderName=OrderName;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public String getOrderName() {
return OrderName;
}
public void setOrderName(String orderName) {
OrderName = orderName;
}
// 重写快捷键:alt+"/"
@Override
public boolean equals(Object obj) {
boolean flag = false;
if (obj instanceof Order) {
Order o = (Order) obj;
if (this.orderId == o.orderId && this.OrderName.equals(o.OrderName)) {
flag = true;
}
}
return flag;
}
Order o1=new Order(123,"abc");
Order o2=new Order(123,"abc");
Order o3=new Order(123,"abcd");
System.out.println(o1.equals(o2));//ture
System.out.println(o1.equals(o3));//false
第二个练习里面用了另一种方法
public class MyDate {
int year;
int month;
int day;
public MyDate(int year, int month, int day) {
this.day = day;
this.month = month;
this.year = year;
}
@Override
public boolean equals(Object obj) {
int flag=1;
if(obj instanceof MyDate){
MyDate o=(MyDate) obj;
flag=0;
if(this.year!=o.year){
flag+=1;
}
if(this.day!=o.day){
flag+=1;
}
if(this.month!=o.month){
flag+=1;
}
}
if(flag==0){
return true;
}
else{
return false;
}
}
}
public static void main(String[] args) {
MyDate t1=new MyDate(5, 2, 5);
MyDate t2=new MyDate(5, 2, 5);
MyDate t3=new MyDate(4, 2, 5);
System.out.println(t1.equals(t2));//true
System.out.println(t1.equals(t3));//false
}