Java & Spring/Java

Object 클래스

승주우에요 2026. 1. 6. 21:30

1. Object 클래스란?

Object 클래스는 자바에서 모든 클래스의 최상위 클래스이다.

  • 자바에서 생성되는 모든 객체는 Object를 상속받는다.
  • 어떤 클래스든 Object 타입으로 참조할 수 있다.
  • 명시적으로 상속하지 않아도 자동으로 상속된다.
  • 자식 클래스의 경우 Object는 부모 클래스가 상속한다
class Person {
}

public class Main {
    public static void main(String[] args) {
        Person p = new Person();
        Object obj = p; // 업캐스팅 가능
    }
}

 

2. Object 클래스의 주요 메서드

  • toString() : 객체를 문자열로 표현하는 메서드
  • equals() : 두 객체가 논리적으로 같은지 비교하는 메서드 (참조 주소 비교)
  • hashCode() : 객체를 식별하기 위한 정수형 해시 값을 반환함

3. 예시

class Person {
    String name;

    Person(String name) {
        this.name = name;
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person("홍길동");
        Person p2 = new Person("홍길동");

        System.out.println(p1.equals(p2));
    }
}

출력
false
import java.util.HashSet;
import java.util.Set;

class Person {
    String name;

    Person(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof Person)) return false;
        Person other = (Person) obj;
        return name.equals(other.name);
    }

    @Override
    public int hashCode() {
        return name.hashCode();
    }
}

public class Main {
    public static void main(String[] args) {
        Set<Person> set = new HashSet<>();
        set.add(new Person("홍길동"));
        set.add(new Person("홍길동"));

        System.out.println(set.size());
    }
}

 

3. 정리

  • 모든 클래스는 Object 클래스를 상속받는다
  • toString은 객체 정보를 문자열로 표현함
  • equals()는 객체 논리 동등 비교
  • equals()를 오버라이딩하면 hashCode()도 함께 오버라이딩하는게 원칙

'Java & Spring > Java' 카테고리의 다른 글

다형성 (Polymorphism)  (0) 2026.01.06
캡슐화와 접근 제어자  (0) 2026.01.06
상속(Inheritance)이란  (0) 2026.01.06
생성자&this,this()  (0) 2026.01.06
메서드  (0) 2026.01.06