예제

 

- 날짜를 구현한 클래스 MyDate가 있습니다.
- 날짜가 같으면 equals()메서드의 결과가 true가 되도록 구현해 보세요
- hashCode()메서드도 구현해 보세요.

 

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를 합한 값이 출력됩니다.

'Java' 카테고리의 다른 글

[Java] 2_2_자료형(Data Type)  (0) 2020.07.28
[Java] 2_1_변수  (0) 2020.07.28
[Java] 자바 기본 클래스 - Class 클래스  (0) 2020.07.22
[Java]자바 기본 클래스 - Object 클래스  (0) 2020.07.22
[Java] 인터페이스 - 예제  (0) 2020.07.21

+ Recent posts