값 타입의 비교
Last updated
Last updated
값 타입은 인스턴스가 달라도 그 안에 있는 값이 같으면 같은 것으로 본다.
int a
== int b
는 true
Address a
== Address b
는 false
객체는 참조값으로 비교한다.
인스턴스의 참조 값을 비교하는 방법
==
을 사용한다.
인스턴스의 값을 비교하는 방법
equals()
를 사용한다.
따라서 값 타입은 a.equals(b)
로 동등성 비교를 해야 한다.
그런데 equals()
로 비교해도 여전히 false
로 나온다.
equals()
기본 구현이 ==
비교를 하기 때문에 override 해서 사용해야 한다.
equals()
를 만들 때는 웬만하면 자동으로 생성해주는 코드를 사용한다.
재정의 해주면 true
로 나오게 된다.