Object 클래스
모든 클래스의 최고 조상. 오직 11개 메서드만 가지고 있음
equals(Object obj)
객체 자신(this)과 주어진 객체(obj)를 비교 ➔ 같으면 true / 다르면 false
- Object 클래스의 equals()는 객체의 주소를 비교 (참조변수 값 비교)
public boolean equals(Object obj) {
return (this == obj);
}
equals(Object obj)의 오버라이딩
인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩 해야 함
중간에 이렇게변경해도 가능
hashCode()
객체의 해시코드(hash code)를 반환하는 메서드
- Object클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환
public class Object {
...
public native int hashCode();
- equals()를 오버라이딩하면, hashCode()도 오버라이딩 해야 함
➔ equals()의 결과가 true인 두 객체의 해시코드는 같아야하기 때문
String str1 = new String ("abc");
String str2 = new String ("abc");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.hashCode); // 96354
System.out.println(str2.hashCode); // 96354
- System.identityHashCode(Object obj)는 Object 클래스의 hashCode()와 동일
(* 객체마다 다른 해시코드 반환하는 메서드)
System.out.println(str1.hashCode); // 3526198
System.out.println(str2.hashCode); // 7699138
toString()
객체를 문자열(String)으로 변환하기 위한 메서드
(= iv값들을 문자열로 변환)
toString()의 오버라이딩
오버라이딩 전 : 객체 주소값 출력
오버라이딩 후 : 객체가 갖고있는 iv값 출력
< 예제 >