본문 바로가기

JAVA_이클립스

JAVA - Object 클래스

Object 클래스

● 모든 클래스의 최상위 부모

● 모든 클래스는 Object를 상속받기 때문에 extends 생략

 

주요 메소드

equals() : 두 객체가 동일한 객체면 true, 다르면 false

 

hashCode() : 객체의 메모리 번지를 이용, 해시코드를 만들어 리턴

 

toString()

● 객체의 문자 정보를 리턴, 즉 객체를 문자열 형태로 표현

● 반환되는 문자열은 클래스 이름과 함께 구분자로 @가 사용되며, 그뒤로 인스턴스의 주소를 가리키는

16진수 해시코드가 추가된다.

 

 

 

clone()

● 새로운 객체로 복사(깊은 복사로 객체와 동시에 값까지 새로 복사함)

● Cloneable 인터페이스가 명시되어있는 클래스만 clone()을 통해 객체를 복제할 수 있음(정보은닉 위배성이 있기 때문)

● new는 아예 새롭게 만들지만 Clone은 값까지 복사함.

● Object 클래스의 clone() 메소드는 단지 필드 값만 복사하므로, 필드의 값이 배열이나 인스턴스면 제대로 복제할 수 없음.

이러한 경우 해당 클래스에서 clone() 메소드를 오버라이딩하여 복제가 제대로 이루어지도록 재정의해야함.

 

getClass() : 해당 객체의 클래스 타입을 반환

 

notify() : 해당 객체의 대기하고 있는 하나의 스레드를 다시 실행할 때 호출

 

notifyAll() : 해당 객체의 대기하고 있는 모든 스레드를 다시 실행할 때 호출

 

finalize() : 해당 객체를 더는 아무도 참조하지 않아 가비지 컬렉터가 객체의 리소스를 정리하기 위해 호출

 

wait() : 해당 객체의 다른 스레드가 notify()나 notifyAll() 메소드를 실행할 때까지

현재 스레드를 일시적으로 대기시킬 때 사용