class Mydate {
int day;
int month;
int year;
public Mydate (int day, int month, int year) {
this.day=day;
this.month=month;
this.year=year;
}
@Override
public int hashCode() {
return day+month+year;
}
@Override
public boolean equals(Object obj) {
if( obj instanceof Mydate ) {
Mydate date = (Mydate)obj;
return (this.day == date.day);
}
return false;
}
}
public class MydateTest {
public static void main(String[] args) {
Mydate date1 = new Mydate(22,7,2020);
Mydate date2 = new Mydate(22,7,2020);
System.out.println(date1.equals(date2)); //true
System.out.println(date1.hashCode()); //2049
System.out.println(date2.hashCode()); //2049
}
}
Mydate 클래스에 날짜를 구현할 수있도록 변수와 생성자를 입력합니다.
equals()를 재정의하여 2개의 date가 날짜가 같으면 eqauls를 true로 반환하게 하게 재정의합니다.
hashCode()를 재정의하여 day+month+year의 값을 return하게 합니다.
Mydate 인스턴스 dat1과 dat2를 생성하고 eqauls를 하면 true가 반환되고 hascode()를 사용하면 day,month,year를 합한 값이 출력됩니다.