개발/JAVA

Java의 기본 클래스 Object: 객체의 기본

예니03 2025. 1. 6. 11:16
반응형

Java에서 모든 클래스는 Object 클래스를 상속받습니다. 이는 곧 모든 Java 객체가 Object 클래스의 기능을 사용할 수 있다는 뜻이죠. 오늘은 Object 클래스의 기본 메서드와 사용법을 예제와 함께 알아보겠습니다. 😊

 

1. Object 클래스란?

Java의 Object 클래스는 모든 Java 클래스의 최상위 부모 클래스입니다.
모든 Java 객체는 기본적으로 Object 클래스의 기능을 상속받아 사용할 수 있습니다.

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

Object 클래스에는 자주 사용되는 기본 메서드들이 포함되어 있습니다. 이번 예제에서는 그중에서 toString, hashCode, getClass를 중점적으로 알아볼게요!

 

2-1. toString() 메서드

  • 객체를 문자열로 표현할 때 호출됩니다.
  • 기본적으로 객체의 클래스 이름과 해시코드가 반환됩니다.

코드 예제: toString() 사용하기

public class Point {
    private int x;
    private int y;

    // 생성자
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    // toString 메서드 오버라이드
    @Override
    public String toString() {
        return "Point(" + x + ", " + y + ")";
    }
}

사용 예제

Point p = new Point(10, 10);
System.out.println(p.toString());  // 출력: Point(10, 10)
System.out.println(p);  // 출력: Point(10, 10) (자동으로 toString 호출)

✔️ 핵심 포인트:

  • toString을 오버라이드하지 않으면 클래스 이름과 해시코드가 반환됩니다.
  • 객체의 정보를 보기 쉽게 표현하려면 toString을 오버라이드하세요!

2-2. hashCode() 메서드

  • 객체를 식별하기 위해 사용되는 고유값(정수)을 반환합니다.
  • 해시 기반 컬렉션(예: HashMap, HashSet)에서 사용됩니다.

사용 예제

Point p = new Point(10, 10);
System.out.println("HashCode: " + p.hashCode());
  • 출력 결과: 해시코드는 메모리 주소를 기반으로 생성된 고유값을 반환합니다.
  • 필요에 따라 hashCode 메서드를 오버라이드하여 커스터마이징할 수 있습니다.

2-3. getClass() 메서드

  • 객체의 클래스 정보를 반환합니다.
  • 객체가 어떤 클래스에서 생성되었는지 확인할 수 있습니다.

사용 예제

Point p = new Point(10, 10);
System.out.println("클래스 이름: " + p.getClass().getName());
  • 출력 결과: 클래스 이름이 출력됩니다. 예) com.javaex.api.objectclass.ex1.Point

3. 코드 전체 보기

public class LangClassTest {
    public static void main(String[] args) {
        // 객체 생성
        Point p = new Point(10, 10);

        // 1. 클래스 이름 확인
        System.out.println("클래스 이름: " + p.getClass().getName());

        // 2. 해시코드 확인
        System.out.println("HashCode: " + p.hashCode());

        // 3. 객체 정보 확인 (toString)
        System.out.println("객체 정보: " + p.toString());
        System.out.println("객체 정보 (자동 호출): " + p);  // toString 자동 호출

        // 4. 부모 클래스 확인
        System.out.println("부모 클래스: " + p.getClass().getSuperclass().getName());
    }
}

class Point {
    private int x;
    private int y;

    // 생성자
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    // toString 메서드 오버라이드
    @Override
    public String toString() {
        return "Point(" + x + ", " + y + ")";
    }
}

 

 

4. 실행 결과

클래스 이름: com.javaex.api.objectclass.ex1.Point  
HashCode: 12345678  // (예: 고유 식별값)  
객체 정보: Point(10, 10)  
객체 정보 (자동 호출): Point(10, 10)  
부모 클래스: java.lang.Object  

 

 

5. Object 메서드 정리

메서드 설명 주요 활용
toString() 객체 정보를 문자열로 반환 객체 디버깅, 로그 확인
hashCode() 객체의 고유 식별값 반환 해시 기반 컬렉션 (예: HashMap, HashSet)
getClass() 객체의 클래스 정보 반환 클래스 이름, 부모 클래스 확인

 

6. 정리

  • 모든 Java 클래스는 Object 클래스를 상속받습니다.
  • toString, hashCode, getClass는 객체를 다룰 때 매우 유용한 메서드입니다.
  • 필요에 따라 메서드를 오버라이드하여 객체의 동작을 커스터마이징할 수 있습니다.

Java에서 객체를 더 잘 이해하고 활용하기 위해 Object 클래스를 꼭 익혀두세요! 😊

 

반응형