- 모든 클래스의 최고 조상 , 11개의 메서드만을 가지고 있다. - notify(),wait() 등은 쓰레드와 관련된 메서드이다. - 이 클래스는 java.lang 패키지에 속해 있으며, 모든 객체가 공통으로 가져야 할 기본적인 메서드들을 제공합니다.
ch9-2 equals(Object obj)
- 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true 다르면 false. - Object 클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)
public boolean equals(Object obj) {
if (this == obj) {
return true; //주소가 같으면 true
}
// 추가 내용
}
예제
class Value{
int value;
Value(int value){
this.value =value;
}
}
public 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)); //false 반환
}
}
class Value {
int value;
Value(int value) {
this.value = value;
}
public boolean equals(Object obj) {
// return this == obj ; 주소비교 ,서로 다른 객체는 항상 거짓
// 참조변수의 형변환 전에는 반드시 instanceof로 확인해야함
if (!(obj instanceof Value)) return false;
Value v = (Value) obj;
return this.value == v.value;
}
}
public class Ex9_2 {
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
System.out.println(v1.equals(v2)); //true
}
}