728x90

모든 클래스의 최고 조상으로 어떤 클래스를 만들든 Object 클래스를 상속 받아 11개의 메소드를 사용가능

protected clone()

객체 자신의 복사본을 반환

protected로 접근제어자가 지정되어 있기 때문에 오버라이딩하여 public으로 지정해서 사용해야 함

equals(비교할객체)

객체 자신(this)과 비교할 객체가 같은 객체인지 주소(참조변수)를 비교 하여 boolean 값을 반환

오버라이딩 하여 주소가 아닌 다른 값을 비교하는 메소드로도 사용가능

protected finalize()

객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출되는 메소드로 이때 수행되어야 하는 코드가 있을 경우에는

추가적으로 오버라이딩 해서 사용하지만 거의 사용하지 않는 메소드

protected로 접근제어자가 지정되어 있기 때문에 오버라이딩하여 public으로 지정해서 사용해야 함

getClass()

객체 자신의 클래스 정보(변수, 메소드, 생성자 등에 대한)를 담고 있는 Class 인스턴스를 반환

hashCode()

객체 자신의 해시코드를 반환

Object 클래스의 오버라이딩 전 hashCode 메소드는 객체의 주소를 int형으로 변환해서 반환

toString()

객체 자신의 정보를 문자열로 반환

notify()

객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨움

notifyAll()

객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨움

wait() / wait(long timeout) / wait(int nanos)

다른 쓰레드가 notify / notifyAll을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간동안 기다리게 함

 

 

기타

native 메소드

운영체제가 기본적으로 가지고 있는 메소드 ( hashCode 메소드가 여기에 속함 )

Object 클래스의 메소드 오버라이딩시 주의할 점

기본적으로 주소를 가지고 작업하던 equals 메소드를 오버라이딩 하면 hashCode도 똑같이 오버라이딩 해줘야 함

equals 메소드의 결과가 참인 두 객체의 해시코드는 같아야하기 때문

'Java > Notion' 카테고리의 다른 글

Date / Calendar / time  (0) 2023.04.30
Number / Wrapper 클래스  (0) 2023.04.30
예외  (0) 2023.04.29
내부 클래스  (0) 2023.04.25
인터페이스  (0) 2023.04.25

+ Recent posts