개발/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 클래스를 꼭 익혀두세요! 😊
반응형