Java.lang.Object class는 java.lang 패키지에 있는 클래스 계층의 루트 또는 슈퍼클래스입니다. . 사전 정의된 모든 클래스와 사용자 정의 클래스는 개체 의 하위 클래스입니다. 수업.
객체 클래스가 슈퍼클래스인 이유
재사용성
- 모든 개체에는 11개의 공통 속성이 있으며 이러한 속성은 모든 Java 개발자가 구현해야 합니다.
- 개발자의 부담을 줄이기 위해 SUN은 이 11가지 속성을 모두 11가지 메서드로 구현하여 Object라는 클래스를 개발했습니다.
- 이러한 모든 메서드는 모든 하위 클래스에 공통적인 일반 논리를 가지고 있습니다. 이 논리가 하위 클래스 요구 사항을 충족하지 않으면 하위 클래스가 이를 재정의할 수 있습니다.
런타임 다형성
- 런타임 다형성을 구현하여 모든 유형의 클래스 객체를 인수 및 반환 유형으로 수신 및 전송하는 단일 메소드를 작성할 수 있습니다.
모든 클래스 개체의 공통 기능
두 개체 비교
- 공개 부울 등호(객체 개체)
해시코드 검색
- 공개 정수 해시코드()
런타임 클래스 개체 참조 검색
- 공개 최종 클래스 getClass()
문자열 형식으로 개체 정보 검색
- 공개 문자열 toString()
복제 개체
- 보호된 개체 clone()이 CloneNotSupportedException을 발생시킵니다.
객체 정리 코드/리소스 릴리스 코드
- 보호된 void finalize() throwable 던지기
다른 스레드가 notify()를 호출할 때까지 현재 스레드를 기다리려면
- 공개 최종 무효 wait()에서 InterruptedException 발생
다른 스레드가 지정된 시간 동안 notify()를 호출할 때까지 현재 스레드를 기다리려면
- 공개 최종 무효 대기(긴 시간 초과)에서 InterruptedException 발생
다른 스레드가 지정된 시간 동안 notify()를 호출할 때까지 현재 스레드를 기다리려면
- 공개 최종 무효 대기(긴 시간 초과, int nano)에서 InterruptedException 발생
대기 중인 스레드에 개체 잠금 사용 가능 여부 알림
- 공개 최종 무효 알림()
대기 중인 스레드에 대한 개체 잠금 가용성에 대해 알림
- 공개 최종 무효 notifyAll()
예시
class Thing extends Object implements Cloneable { public String id; public Object clone() throws CloneNotSupportedException { return super.clone(); } public boolean equals(Object obj) { boolean result = false; if ((obj!=null) && obj instanceof Thing) { Thing t = (Thing) obj; if (id.equals(t.id)) result = true; } return result; } public int hashCode() { return id.hashCode(); } public String toString() { return "This is: "+id; } } public class Test { public static void main(String args[]) throws Exception { Thing t1 = new Thing(), t2; t1.id = "Raj"; t2 = t1; // t1 == t2 and t1.equals(t2) t2 = (Thing) t1.clone(); // t2!=t1 but t1.equals(t2) t2.id = "Adithya"; // t2!=t1 and !t1.equals(t2) Object obj = t2; System.out.println(obj); //Thing = Adithya } }
출력
This is: Adithya