Object — 클래스 계층의 뿌리

Object — 클래스 계층의 뿌리

Object클래스 계층의 뿌리(root) 예요. 모든 클래스는 Object를 슈퍼클래스로 가지며, 배열을 포함한 모든 객체가 이 클래스의 메서드를 구현해요.

출처: Java API Reference

본문

자바의 모든 클래스가 Object에서 상속받기 때문에, 이 클래스의 메서드는 사실상 모든 객체가 기본으로 갖는 것들이에요. 그래서 이 메서드들의 의미를 이해하는 게 자바의 기초예요.

생성자

  • Object() — 새 객체를 생성해요.

주요 메서드

  • protected Object clone() — 이 객체의 복사본을 만들어 반환해요.
  • boolean equals(Object obj) — 다른 객체가 이 객체와 "동등한지(equal to)" 여부를 나타내요.
  • protected void finalize()deprecated(제거 예정): finalization은 미래 릴리스에서 제거 대상이에요.
  • final Class<?> getClass() — 이 객체의 런타임 클래스를 반환해요. 반환되는 Class 객체는 그 클래스가 나타내는 static synchronized 메서드가 잠그는 객체예요. 실제 결과 타입은 Class<? extends |X|>인데, |X|getClass가 호출된 표현식의 static 타입의 소거(erasure)예요. 예를 들어 다음 코드 조각에선 캐스트가 필요 없어요.
Number n = 0;
Class<? extends Number> c = n.getClass();
  • int hashCode() — 객체를 위한 해시 코드 값을 반환해요.
  • final void notify() — 이 객체의 모니터에서 대기 중인 단일 스레드를 깨워요.
  • final void notifyAll() — 이 객체의 모니터에서 대기 중인 모든 스레드를 깨워요.
  • String toString() — 객체의 문자열 표현을 반환해요.
  • final void wait() — 현재 스레드를, 보통 notify·interrupt로 깨어날 때까지 대기시켜요.
  • final void wait(long timeoutMillis) — 현재 스레드를 깨어나거나 일정 실시간이 경과할 때까지 대기시켜요.
  • final void wait(long timeoutMillis, int nanos) — 현재 스레드를 깨어나거나 일정 실시간이 경과할 때까지 대기시켜요.

equals, hashCode, toString은 자바에서 가장 자주 재정의되는 메서드로, 값 동등성·해시 기반 컬렉션·문자열 표현을 원하는 대로 바꾸는 데 쓰여요.

더 알아보기 (Learn more)