백엔드

Java Study[2022-09-12] - 객체지향프로그래밍(Object 응용 문제 풀이)

머훈 2022. 9. 12. 23:16

🔸 2022-09-12 월요일

[객체지향프로그래밍]

1. Object 클래스 응용

  • 날짜를 구현한 클래스 MyDate
  • 날짜가 같으면 equals() 메서드의 결과가 true가 되도록 구현하기
  • hashCode() 메서드도 구현

 

  • MyDate 클래스
    package object;

public 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;
    }

 

  • MyDateTest 클래스
    package object;

public class MyDateTest {

    public static void main(String[] args) {

        MyDate date1 = new MyDate(12, 9, 2022);
        MyDate date2 = new MyDate(12, 9, 2022);

        System.out.println(date1.equals(date2));
    }
}
  • 결과는 false
  • 아무것도 오버라이딩을 하지 않았기 때문
  • equals()와 hashCode() 작성

 

  • @Override 추가
  • equals() 정의 => if 조건문으로 true 값 설정
  • hashCode() 정의
    @Override
public boolean equals(Object obj){
        if(obj instanceof MyDate){
        MyDate date=(MyDate)obj;

        if(this.day==date.day&&this.month==this.month&&this.year==this.year)
        return true;

        return false;
        }

        return false;
        }
    @Override
public int hashCode(){
        return day*11+month*101+year*1001;
        }

 

🔖 Eclipse 실습

object_list

🔖 Eclipse 출력 Console

object_console1