동등성은 동등하다는 뜻으로 두 개의 객체가 같은 정보를 갖고 있는 경우를 의미한다. 동등성은 변수가 참조하고 있는 객체의 주소가 서로 다르더라도 내용만 같으면 두 변수는 동등하다고 이야기할 수 있다. 동일하면 동등하지만, 동등하다고 동일한 것은 아니다. 그리고 해당 변수가 동등한지 equals()
메서드를 통해 판별할 수 있다.
동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다.
equals()
와 hashCode()
두 메서드 모두 Object
클래스의 메서드이며, 객체간 동등성과 동일성을 확인하기 위해서 사용된다.
equals()
객체를 비교하는 방법. 객체는 ==
만으로 같은지 확인이 안되기 때문.
Enum
클래스등은 인스턴스가 둘 이상 만들어지지 않음을 보장하는 클래스이기 때문에 재정의 하지 않아도 된다.equals()
메서드를 작성하는 방법재귀 (reflexive)
null
이 아닌 x
라는 객체의 x.equals(x)
의 결과는 항상 true 이어야 한다.