728x90
반응형
🟣 값 타입의 비교
int a, b 는 같다고 표현한다
int a = 10;
int b = 10;
Binsoo a, b 는 같다고 표현한다
Binsoo a = new Binsoo( "java", "01011112222" )
Binsoo b = new Binsoo( "java", "01011112222" )
🟣 자바가 제공하는 객체 비교는 두 가지이다.
✅ 동등성 비교
- 동등성 : Equivalence
- 인스턴스 값을 비교
- equals() 사용
✅ 동일성 비교
- 동일성 : identity
- 인스턴스 참조 값을 비교
- == 사용
Binsoo 객체 값 타입을 a == b 로 동일성 비교를 하면
둘은 서로 다른 인스턴스이므로 결과는 거짓이다.
하지만 이것은 기대한 결과가 아니다.
값 타입은 비록 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 한다.
따라서 값 타입을 비교할 때는 a.equals(b) 를 사용해서 동등성 비교를 해야한다.
Binsoo 객체의 equals() 를 재구현 할 것을 권장하며
재정의 할 때는 모든 필드 값을 비교하도록 구현한다.
728x90
반응형
'개발중 > Java' 카테고리의 다른 글
java outputstream (0) | 2021.07.06 |
---|---|
java inputstream (0) | 2021.07.06 |
동등성과 동일성의 차이점 (2) | 2021.06.24 |
enum 도전 / 성공 (0) | 2021.06.16 |
특정 문자열이 배열안에 존재 하는지 여부/확인 (0) | 2021.06.03 |