모든 클래스의 최고 조상으로 어떤 클래스를 만들든 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 |