Object

인철·2023년 10월 13일

Java

목록 보기
37/52

Object

Object

  • 모든 클래스의 최상위 클래스
  • 모든 클래스가 직접 및 간접적으로 상속

쓰이는 상황

  • equals() : 두 객체를 비교
  • hashCode() : 객체의 해시코드 반환
  • toString() : 객체의 문자열 반환

주의할 점

  • 몇 가지 기본적인 메서드만 제공하기 때문에 개발자가 직접 적절한 방식으로 오버라이드하여 사용해야 함
  • equals(), hashCode()를 오버라이드 할때는 서로 일관되게 구현해야 함
예시
public class ObjectExample {
    private String name;
    private int id;

    public ObjectExample(String name, int id) {
        this.name = name;
        this.id = id;
    }

    // 오버라이드된 toString 메서드
    @Override
    public String toString() {
        return "ObjectExample { " +
                "name='" + name + '\'' +
                ", id=" + id +
                " }";
    }

    // 오버라이드된 equals 메서드
    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        ObjectExample that = (ObjectExample) obj;
        return id == that.id && name.equals(that.name);
    }

    // 오버라이드된 hashCode 메서드
    @Override
    public int hashCode() {
        int result = name.hashCode();
        result = 31 * result + id;
        return result;
    }

    public static void main(String[] args) {
        ObjectExample obj1 = new ObjectExample("John", 1);
        ObjectExample obj2 = new ObjectExample("John", 1);

        // toString 메서드 호출
        System.out.println(obj1);

        // equals 메서드 호출
        System.out.println("obj1.equals(obj2): " + obj1.equals(obj2));

        // hashCode 메서드 호출
        System.out.println("Hashcode of obj1: " + obj1.hashCode());
    }
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글