重写equals方法练习实战记录
定义MyDate类,在MyDate类中覆盖equals方法,使其判断当两个MyDate类型对象的年月日都相同是,结果为ture,否则为false。
package com.test.functions;
import java.util.Objects;
public class MyDate {
private int year;
private int month;
private int day;
public MyDate(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
@Override
public boolean equals(Object obj) {
//1. 判断是否为空
if (obj == null) {
return false;
}
//2.与this进行比较,判断内存地址是否相同,相同则返回true
if (this == obj) {
return true;
}
// 3.类型判断,判断左边对象是否是右边类的实例,即是否可以支持向下转型
if (!(obj instanceof MyDate)) {
return false;
}
//向下强制转型
MyDate myDate = (MyDate) obj;
return this.year == myDate.year && this.month == myDate.month && this.day == myDate.day;
}
}
-----------
private static void test14() {
MyDate d1 = new MyDate(2022,02,19);
MyDate d2 = new MyDate(2021,02,19);
System.out.println(d1.equals(d2));
}