public boolean equals(Object obj) {
return (this==obj); // 주소 비교.
}
# 예제
class Value {
int value;
Value(int value){
this.value = value;
}
}
class Ex9_1 {
public static void main(String[] args){
Value v1 = new Value(10);
Value v2 = new Value(10);
System.out.println(v1.equals(v2));
}
}
결과 : 서로 다른 두 객체는 항상 주소가 다르다.
# 예제
class Value {
int value;
Value(int value){
this.value = value;
}
// Object의 equals()를 오버라이딩해서 주소가 아닌 value를 비교
public boolean equals(Object obj){
//참조변수의 형변환 전에는 반드시 instanceof로 확인해야 함
if(!(obj instance of Value)) return false;
Value v = (Value)obj; // obj를 value로 형변환(∵Value라는 리모콘에는 value버튼이 있지만, Object에는 없기 때문)
return this.value==v.value;
}
}