Object class

  • Object class

: 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다.

Object class method

Desc

protected Object clone()

protected : 오버라이딩해서 public으로 바꿔줘야 쓸 수 있다.

객체 자신의 복사본을 반환한다.

public boolean equals(Object obj)

객체 자신과 객체 obj가 같은 객체인지 알려준다.(같으면 true)

protected void finalize()

protected : 오버라이딩해서 public으로 바꿔줘야 쓸 수 있다.

생성자(객체 초기화) 와 반대되는 개념.

객체가 소멸될 때 가비기 컬렉터에 의해 자동적으로 호출된다. 이때 수행되어야하는 코드가 있을 때 오버라이딩한다. (메모리 문제로 인해 거의 사용안함)

public Class getClass()

객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환한다. Reflection API는 Class 인스턴스(설계도 객체)를 통해 객체 생성, 객체 정보를 얻을 수 있다.=>실행 중에 객체 생성

public int hashCode()

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

public String toString()

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

public void notify()

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

public void notifyAll()

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

public void wait()

public void wait(long timeout)

public void wait(long timeout, int nanos)

다른 쓰레드가 notify()나 notifyAll()을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간(timeout, nanos)동안 기다리게 한다. (timeout은 천 분의 1초, nanos는 10^9분의 1초)

  • equals(Object obj)

: 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false.

Object 클래스의 equals()는 객체의 주소를 비교한다.(참조변수 값 비교)

오버라이딩해서 사용해야한다.

class Person {
    long id;
    //equals는 주소값만을 비교하기 때문에
    //값을 비교하도록
    //equals를 오버라이딩한다.
    public boolean equals(Object obj) {
        //Object에는 비교하고자하는 id값이 없기 때문에
        //형변환 필요.
        //1. 형변환 가능 여부 먼저 확인.
        if(obj instanceof Person)//형변환 가능하다면(참이면)
            return id == ((Person)obj).id;//형변환하여 비교 결과를 리턴!
        else
            return false;
    }
    
    Person(long id) {
        this.id = id;
    }
}

Last updated