앞서 상속에 대해 배우며 모든 클래스에 자동으로 상속되는 'Object 클래스'에 대해 언급한 적이 있다.
여기서는 과연 Object 클래스는 어떠한 메서드를 가지고 있는지 알아보고자 한다.
package kr.s25.lang.object;
public class ObjectMain {
public static void main(String[] args) {
ObjectMain om = new ObjectMain();
//클래스 정보 반환
System.out.println(om.getClass());
//클래스 명 반환
System.out.println(om.getClass().getName());
//해시코드 반환
System.out.println(om.hashCode());
//해시코드를 16진수로 변환
System.out.println(Integer.toHexString(om.hashCode()));
//참조값 반환
System.out.println(om.toString());
System.out.println(om);
}
}
Object 클래스를 자동으로 상속 받은 ObjectMain 클래스의 객체를 생성한 뒤, Object의 메서드를 사용할 수 있다.
getClass() : class kr.s25.lang.object.ObjectMain
패키지명까지 포함하여 결과 반환
getClass().getName() : kr.s25.lang.object.ObjectMain
클래스 정보에서 클래스명만 반환
hashCode() : 925858445
클래스의 해시코드 반환
(해시코드 : 인스턴스를 생성할 때 메모리 주소를 변환해서 부여하는 코드)
Integer.toHexString() : 372f7a8d
해시코드를 16진수로 변환
toString() : kr.s25.lang.object.ObjectMain@372f7a8d
해당 객체의 참조값 반환
System.out.println(om); : kr.s25.lang.object.ObjectMain@372f7a8d
참조변수를 호출하면 자동적으로 toString() 메서드가 동작해서 참조값을 반환
위와 같은 메서드 중 toString()을 제외하고는 직접적으로 호출해 사용하는 경우가 거의 없으니 알아만 두면 된다.