Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
Java Series [Part16]: 자바의 Object 클래스
language
java

Java Series [Part16]: 자바의 Object 클래스

Jay Kim
Jay Kim 28 Feb 2025
Java Series [Part12]: 자바의 컬렉션 프레임워크 Java Series [Part17]: 자바의 String, StringBuilder 클래스

Table of Contents

  • 자바의 Object 클래스
    • 1. Object 클래스란?
    • 2. Object 클래스의 주요 메서드
      • 2.1 equals(Object obj)
      • 2.2 hashCode()
      • 2.3 toString()
      • 2.4 clone()
      • 2.5 getClass()
      • 2.6 finalize()
    • 3. Object 클래스의 역할
    • 4. 결론

자바의 Object 클래스

1. Object 클래스란?

Object 클래스는 자바에서 모든 클래스의 최상위 부모 클래스입니다. 자바의 모든 클래스는 Object 클래스를 상속받으며, 이를 통해 기본적인 메서드들을 사용할 수 있습니다.

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

Object 클래스는 다양한 메서드를 제공하며, 이를 오버라이딩하여 원하는 기능을 구현할 수 있습니다.

2.1 equals(Object obj)

  • 두 객체가 논리적으로 같은지 비교하는 메서드
  • 기본 구현은 참조 주소 비교 (==)이므로, 원하는 비교 기준을 만들기 위해 오버라이딩이 필요함
class Person {
    String name;
    int age;

    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && name.equals(person.name);
    }
}

2.2 hashCode()

  • 객체를 해시 기반 컬렉션(HashMap, HashSet 등)에 저장할 때 사용되는 해시값을 반환
  • equals()를 오버라이딩하면 hashCode()도 함께 오버라이딩해야 함
@Override
public int hashCode() {
    return Objects.hash(name, age);
}

2.3 toString()

  • 객체의 정보를 문자열로 반환하는 메서드
  • 기본 구현은 클래스명@해시코드 형식
  • 오버라이딩하여 객체의 상태를 가독성 있게 출력 가능
@Override
public String toString() {
    return "Person{name='" + name + "', age=" + age + "}";
}

2.4 clone()

  • 객체를 복사하는 메서드
  • Cloneable 인터페이스를 구현해야 사용 가능
class Person implements Cloneable {
    String name;
    int age;

    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

2.5 getClass()

  • 객체의 클래스 정보를 반환하는 메서드
  • 클래스 이름, 패키지 정보 등을 확인할 때 사용
Person p = new Person("Alice", 25);
System.out.println(p.getClass().getName()); // Person

2.6 finalize()

  • 객체가 GC(Garbage Collector)에 의해 삭제되기 전에 호출되는 메서드 (현재는 거의 사용되지 않음)

3. Object 클래스의 역할

  • 모든 클래스의 공통 기능 제공
  • 다형성 활용 가능 (Object 타입으로 모든 객체 저장 가능)
Object obj = new Person("John", 30);
System.out.println(obj.toString());

4. 결론

Object 클래스는 자바의 모든 객체가 기본적으로 상속받는 클래스이며, 필수적인 메서드들을 제공합니다. 이를 오버라이딩하여 객체 비교, 출력, 해시 연산 등을 커스터마이징할 수 있습니다.

이제 Object 클래스를 적절히 활용하여 효율적인 객체 관리를 해보세요! 🚀

Java Series [Part12]: 자바의 컬렉션 프레임워크 Java Series [Part17]: 자바의 String, StringBuilder 클래스

You may also like

See all java
25 Mar 2025 Java OOP Series [Part3]: 디자인 패턴
language
java

Java OOP Series [Part3]: 디자인 패턴

20 Mar 2025 Java OOP Series [Part2]: 객체지향
language
java

Java OOP Series [Part2]: 객체지향

15 Mar 2025 Java OOP Series [Part1]: 클래스와 인스턴스
language
java

Java OOP Series [Part1]: 클래스와 인스턴스

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.