충분히 쌓여가는
12.3 Object 클래스 - 객체 동등 비교 equals() 본문
Object의 equals() 메소드는 객체의 번지를 비교하고 boolean 값을 return 한다
public boolean equals(Obejct obj)
equals() 메소드의 매개변수 타입이 Object이므로 자동 타입 변환에 의해 모든 객체가 매개값으로 대입될 수 있다
equals() 메소드는 비교 연산자인 ==과 동일한 결과를 return 한다
Object obj1 = new Object();
Object obj2 = obj1;
boolean result = obj1.equals(obj2);
boolean result = (obj1 == obj2)
일반적으로 Object의 equals() 메소드는 재정의해서 동등 비교용으로 사용된다(동등 비교: 객체가 비록 달라도 내부의 데이터가 같은지 비교하는 것)
ex. String은 equals() 메소드를 재정의해서 내부 문자열이 같은지 비교함
예시
package ch12.sec03.exam01;
public class Member {
public String id;
public Member(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member target) {
if(id.equals(target.id)) {
return true;
}
}
return false;
}
}
package ch12.sec03.exam01;
public class EqualsExample {
public static void main(String[] args) {
Member obj1 = new Member("blue");
Member obj2 = new Member("blue");
Member obj3 = new Member("red");
if(obj1.equals(obj2)) {
System.out.println("obj1과 obj2는 동일");
} else {
System.out.println("obj1과 obj2는 동일하지 않다");
}
if(obj1.equals(obj3)) {
System.out.println("obj1과 obj3는 동일");
} else {
System.out.println("obj1과 obj3는 동일하지 않다");
}
}
}
obj1과 obj2는 동일
obj1과 obj3는 동일하지 않다
'이것이 자바다 > 12 java.base 모듈' 카테고리의 다른 글
12.3 Object 클래스 - 객체 해시코드 hashCode()와 equals() (0) | 2024.04.08 |
---|---|
12.3 Object 클래스 (0) | 2024.04.08 |
12.2 java.base 모듈 - java.lang, java.util, ... (0) | 2024.04.08 |