본문 바로가기

Back-End/JAVA

[JAVA] equals() 메소드 Overriding

equals() 메소드를 오버라이딩 할 때에 만족해야하는 다섯가지 조건이 존재한다.

  • 재귀 (reflexive) : null 이 아닌 x 라는 객체의 x.equals(x) 결과는 항상 true 여야 한다.
  • 대칭 (symmetric) : null 이 아닌 x 와 y객체가 있을 때 y.equals(x) 가 true 를 리턴했다면, x.equals(y) 도 반드시 true 를 리턴해야만 한다.
  • 타동적 (transitive) : null 이 아닌 x, y, z 가 있을 때 x.equals(y) 가 반드시 true 를 리턴해야만 한다.
  • 일관 (consistent) : null 이 아닌 x 와 y 가 있을 때 객체가 변경되지 않은 상황에서는 몇 번을 호출하더라도, x.equals(y) 의 결과는 항상 true 이거나 항상 false 여야만 한다.
  • null 과의 비교 : null 이 아닌 x 라는 객체의 x.equals(null) 결과는 항상 false 여야만 한다. 

참고 : (서적) 자바의 신


'Back-End > JAVA' 카테고리의 다른 글

[JAVA] 접근제어자 (Access modifier)  (0) 2016.08.28
[JAVA] import static  (0) 2016.08.28
[JAVA] 패키지 시작 이름  (0) 2016.08.28
[JAVA] 배열형 매개변수  (0) 2016.08.27
[JAVA] Pass by Value & Pass by Reference  (0) 2016.08.27