Language/Java
equals() 오버라이딩
Jinn
2023. 6. 28. 08:59
public class Main {
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
if(v1.equals(v2))
System.out.println("v1과 v2는 같습니다.");
else
System.out.println("v1과 v2는 다릅니다.");
}
}
class Value {
int value;
Value(int value) {
this.value = value;
}
public boolean equals(Object obj) { // 객체 주소 비교
return this==obj;
}
}
// v1과 v2는 다릅니다.
public class Main {
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
if(v1.equals(v2))
System.out.println("v1과 v2는 같습니다.");
else
System.out.println("v1과 v2는 다릅니다.");
}
}
class Value {
int value;
Value(int value) {
this.value = value;
}
public boolean equals(Object obj) {
if(obj instanceof Value) { // obj는 모든 객체가 들어올 수 있으므로 Value 객체인지 확인
// 형변환 필요. obj에는 value 변수가 없음
// 객체 주소가 아닌 인스턴스 변수(value)를 비교
return this.value == ((Value)obj).value;
} else {
return false;
}
}
}
// v1과 v2는 같습니다.