더북(TheBook)

4.2.2 equals 메서드


equals 메서드는 한 객체가 다른 객체와 동등한지(같다고 볼 수 있는지) 검사한다. Object 클래스에 구현된 equals 메서드는 두 객체 참조가 동일한지(똑같은지) 판단한다. Objectequals 구현은 꽤 합리적인 기본 값으로 두 객체가 동일하다면 당연히 동등하다. 상당수 클래스에 다른 검사는 필요 없다. 예를 들어 두 Scanner 객체의 동등성을 비교하는 것은 별 의미가 없다.

두 객체가 같은 내용을 담고 있을 때 같다고 보는 상태 기반 동등성 검사가 필요할 때만 equals 메서드를 오버라이드하면 된다. 예를 들어 String 클래스는 두 문자열이 같은 문자들로 구성되어 있는지 검사하려고 equals를 오버라이드한다.

icon Caution

equals 메서드를 오버라이드할 때마다 이것과 호환되는 hashCode 메서드도 반드시 작성해야 한다(4.2.3 hashCode 메서드 참고).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.