[자바] Object class

cloudbread·2025년 10월 19일

1. Object 클래스

  • 모든 클래스의 최상위 클래스 -> java의 모든 클래스는 자동으로 object를 상속받음
  • java.lang 패키지에 포함
  • 1) toString() 메서드
클래스이름@해시코드값(16진수)

2. == vs equals()

  • == : 래퍼런스(주소) 비교
  • equals() : 같은 값인가
Point a = new Point(2, 3);
Point b = new Point(2, 3);
Point c = a;

System.out.println(a == b);      // false (서로 다른 객체)
System.out.println(a == c);      // true (같은 객체)
  • c는 새 객체를 만드는 것이 아니라 a의 주소값을 그대로 c에 복제한다.
  • Object.equals()는 기본적으로 == 과 동일하게 작동한다
class Point {
    private int x, y;

    public Point(int x, int y) {
        this.x = x; this.y = y;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;          // 자기 자신 비교
        if (obj == null || getClass() != obj.getClass()) return false; // null 또는 클래스 다름
        Point p = (Point) obj;
        return x == p.x && y == p.y;           // 내용 비교
    }
}
  • equals()가 true면, hashCode()도 같아야 한다.
@Override
public int hashCode() {
    return Objects.hash(x, y);
}
profile
잡다한거 다 공부중....

0개의 댓글