어제 오늘 내일

[Java] 클래스와 객체 차이 본문

IT/Java

[Java] 클래스와 객체 차이

hi.anna 2025. 12. 18. 01:06

 

Java를 포함한 객체지향 프로그래밍(OOP)에서 가장 기본이 되는 개념이 바로 클래스(Class)객체(Object) 입니다. 두 용어는 자주 함께 사용되지만, 역할과 의미는 명확하게 구분됩니다. 이 글에서는 클래스와 객체의 차이를 이해하기 쉽게 정리합니다.

 

 

1. 클래스(Class)란?

클래스는 객체를 만들기 위한 설계도(blueprint)입니다.
어떤 속성(변수)과 기능(메서드)을 가진 객체를 만들 것인지 정의해 둔 구조입니다.

예:

public class Person {
    String name;      // 속성
    int age;

    void speak() {    // 기능
        System.out.println("Hello");
    }
}

설명

  • Person 클래스는 name, age, speak()라는 구성 요소를 가진 객체를 만들기 위한 설계도

 

2. 객체(Object)란?

객체는 클래스를 바탕으로 실제로 만들어진 실체(Instance)입니다.
클래스에서 정의한 속성과 기능을 실제로 사용할 수 있는 형태입니다.

예:

Person p = new Person();
p.name = "Tom";
p.age = 20;
p.speak();

설명

  • new Person()으로 Person 객체를 생성
  • 객체는 메모리에 실제로 존재하며 데이터를 가진다

 

3. 클래스와 객체의 관계

클래스와 객체의 관계는 다음과 같이 비유할 수 있습니다:

  • 클래스 = 설계도
  • 객체 = 설계도로 찍어낸 제품

또는:

  • 클래스 = 붕어빵 틀
  • 객체 = 실제로 만들어진 붕어빵

즉, 클래스를 먼저 정의하고, 그 클래스를 기반으로 객체를 여러 개 만들 수 있습니다.

예:

Person p1 = new Person();
Person p2 = new Person();

설명

  • p1, p2는 모두 Person 클래스의 객체이지만 서로 다른 메모리 공간을 가지는 독립된 실체

 

4. 클래스는 정의, 객체는 사용

  • 클래스는 "무엇을 만들지" 정의하는 것
  • 객체는 "만들어진 결과물을 실제로 사용하는 것"

클래스는 데이터 구조와 기능의 틀을 제공하고, 객체는 그 틀에 따라 실제 데이터를 담고 동작합니다.

 

5. 정리

구분 클래스(Class) 객체(Object)

의미 설계도 설계도로 만들어진 실체
생성 시점 코드 작성 단계 프로그램 실행 중 생성
메모리 메모리에 로딩되지만 인스턴스는 아님 메모리에 실제 생성됨
역할 구조 정의 실제 데이터 보관 및 동작 수행
개수 1개 정의로 여러 객체 생성 가능 여러 개 생성 가능

클래스와 객체의 차이를 명확히 이해하면 객체지향 프로그래밍의 기본 원리를 좀 더 자연스럽게 받아들일 수 있게 됩니다.

 

 

 

반응형

'IT > Java' 카테고리의 다른 글

[Java] void 뜻  (0) 2025.12.19
[Java] static이란?  (0) 2025.12.18
[Java] 삼항연산자, 중첩 삼항연산자  (0) 2025.12.17
[Java] @Override 어노테이션  (0) 2025.12.17
[Java] 생성자 오버로딩 (Constructor Overloading)  (1) 2025.12.16
Comments