티스토리 뷰
Object Class
◎ Define
- Object Class는 java.lang 패키지 내의 최상위(부모) 클래스이다. 이는 곧 자바 내 모든 클래스들의 최상위 클래스라는 뜻이며, 모든 클래스들은 이 Object 클래스를 상속 받는다.
◎ Object Class Method
Method |
Brief description |
boolean equals(Object obj) |
두 객체가 같은지 비교하여 true or false 반환 |
String toString() |
현재 객체의 문자열을 반환한다. |
protected Object clone() |
해당 객체를 복제한다. |
protected void finalize() |
Garbage Collection 직전 객체의 리소스 정리 |
Class getClass() |
객체 Class의 자세한 정보 반환 |
int hashCode() |
객체의 고유(메모리 주소)값을 반환 |
void notify() |
멈춘 스레드 재시작 |
void notifyAll() |
멈춘 모든 스레드 재시작 |
void wait() |
스레드 멈춤 |
void wait(long timeout) |
할당한 시간만큼 스레드 멈춤 |
void wait(long timeout, int nanos) |
할당한 시간만큼 스레드 멈춤 |
◎ Explanation
① Object는 Java에서 최상위 Class(부모) 이기 때문에 이 Object가 가지고 있는 member인 11개의 method를 모든 Class에서 즉각 사용이 가능하다. 하지만 Object Class 내에 정의 된 method를 overriding 하고 있는 경우가 많으므로 method를 사용할 때 이를 참고하도록 한다.
② Object의 clone() method는 단지 field의 값만을 복사하기 때문에, 필드의 값이 배열이나 인스턴스라면 제대로 복사할 수 없다. 따라서 이러한 경우에는 해당 Class에서 clone() method를 overriding하여, 복사가 이루어지도록 변형시켜야 된다. 이러한 clone() method는 데이터 보호를 이유로 Cloneable 인터페이스를 구현한 Class의 인스턴스만이 사용할 수 있다.
'Java > Class' 카테고리의 다른 글
| [java.lang] Wrapper (0) | 2018.01.05 |
|---|---|
| [java.lang] Math (0) | 2018.01.05 |
| [java.lang] StringBuilder (0) | 2018.01.04 |
| [java.lang] StringBuffer (0) | 2018.01.04 |
| [java.lang] String (0) | 2018.01.03 |
