我们一个MyDate类为例,故类中有year,month,day等成员变量,曾经问过equals方法有什么涵义?后来才发现这是一个问题,单连接数据库的时候比较对象的时候它是主角~~~~

下面我用两种写法equals方法:

方法一:

public boolean equals(MyDate d) {   //new一个MaDate 对象
if(this==d) {
return true;
}
if(d!=null&&this.year==d.year&&this.month==d.month&&this.day==d.day) { //这里不用判断this是否为空
return true;
}
return false;
}


方法二:


public boolean equals(Objecte obj) {
if(obj!=null&&obj instanceof MyDate){
MyDate d=(MyDate)obj; //这里必须要强转为MyDate类型,因为Objecte类中没有d对象
if(d.year==d.year&&this.month==d.month&&this.day==d.day) {
return true;
}
return false;
}