CS 공부, 기타

클래스, 객체, 인스턴스

Disciple428 2025. 5. 8. 15:57

✅ 클래스 (Class)

  • 정의: 객체를 만들기 위한 설계도 또는
  • 예시: “자동차”라는 클래스는 바퀴, 핸들, 엔진 등의 속성과, 달리기(run), 멈추기(stop) 같은 기능을 정의합니다.
  • 특징: 실제 메모리에 할당되지 않고, 구조와 행동만 정의합니다.
class Car:
    def __init__(self, color):
        self.color = color

    def drive(self):
        print(f"{self.color} 차가 달립니다.")

 

✅ 객체 (Object)

  • 정의: 클래스에 정의된 구조에 따라 실제로 메모리에 생성된 실체
  • 객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버라고 한다.
  • 속성(Property) : 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
  • 기능(function) : 메서드(method), 행위(behavior), 함수(function)
  • 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
my_car = Car("빨간색")  # → 객체

 

✅ 인스턴스 (Instance)

  • 정의: 객체와 거의 같은 말이지만, 특정 클래스에서 생성된 객체그 클래스의 인스턴스라고 합니다.
  • 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다.
  • 실체화된 인스턴스는 메모리에 할당된다.
  • 클래스가 가지고 있는 메소드(method)를 모두 상속 받는다.
  • 쉽게 말하면 my_car는 Car 클래스의 인스턴스입니다.
isinstance(my_car, Car)  # True

인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다.

인스턴스는 어떤 원본(추상적인 개념)으로부터 ‘생성된 복제본’을 의미한다.

 

✅ 인스턴스화 (Instantiation)

  • 정의: 클래스를 기반으로 실제 객체(인스턴스)를 생성하는 과정
  • 문법: 파이썬에서는 클래스명()을 호출하면 인스턴스화가 일어납니다.
my_car = Car("파란색")  # Car 클래스를 인스턴스화 → my_car라는 인스턴스 생성