클래스/객체/인스턴스

2025. 1. 1.·언어/Python

클래스(Class)

클래스는 객체를 만들어내는 설계도(Blueprint)

객체의 필드(field)와 메소드(method)를 정의하는 틀

 # 필드(field): 클래스 또는 객체가 가지고 있는 데이터 (= member variable, attribute, instance variable)

 #  메소드(method): 클래스 내부에 정의된 함수(클래스에 종속)

class Person:
    def __init__(self, name, age):
        self.name = name   # 속성(인스턴스 변수)
        self.age = age     # 속성(인스턴스 변수)
    
    def speak(self):       # 메서드
        print(f"안녕하세요, 저는 {self.name}입니다.")

파이썬에서 클래스를 정의할 땐 class 키워드 사용

클래스 정의 안에 __init__ 메소드가 있으면, 객체가 생성될 때(인스턴스화 될 때) 자동으로 호출되어 초기화 작업 진행

self는 인스턴스 자신을 가리키는 예약어로, 인스턴스 내부 속성이나 메소드 접근시 사용

---🐢

객체(Object)

객체는 실제로 존재하는 것(물리적 /개념적 실체 등) 또는 클래스의 인스턴스를 가리킴

프로그래밍에서 '객체'는 클래스라는 설계도를 통해 만들어진 실체이며, 필드(속성)와 메소드(행동)을 가지고 있음

--🐢-

인스턴스(Instance)

특정 클래스에 속하는 객체

 

인스턴스화(Instantiation)

p1 = Person("홍길동", 30)  # Person 클래스의 인스턴스 p1 생성
p2 = Person("이몽룡", 20)  # Person 클래스의 인스턴스 p2 생성

p1, p2가 각각 Person 클래스의 인스턴스

클래스는 설계도이고, 실제로 메모리에 올라가서 사용 가능한 대상이 되는 과정을 인스턴스화라 부름

인스턴스 멤버 접근

print(p1.name)  # 홍길동
print(p1.age)   # 30
p1.speak()      # "안녕하세요, 저는 홍길동입니다."

인스턴스 p1 안에는 self.name, self.age와 같은 속성(필드)이 있고, speak() 메소드 호출 가능 

-🐢--

클래스와 인스턴스 관계

클래스: “속성+메서드”라는 로직과 구조를 정의해 둔 설계도

인스턴스: 클래스(설계도)를 통해 실제로 생성된 객체

 

즉, 클래스가 있더라도 직접 인스턴스를 생성하지 않으면 사용이 불가능

 # 하나의 클래스로 여러 개의 인스턴스를 만들 수 있음

 # 각각의 인스턴스는 공통된 특성(클래스에 정의된 속성과 메서드)을 공유하되, 속성 값은 서로 다를 수 있음

🐢---

인스턴스 변수, 클래스 변수

인스턴스 변수

self.name, self.age처럼 인스턴스마다 개별적으로 존재하는 변수

각각의 인스턴스에서 서로 다른 값을 가질 수 있음

클래스 변수

인스턴스마다 공통으로 사용되는 변수

클래스 정의 내부에서 self 없이 선언하거나, 클래스 이름을 통해 접근

class Person:
    species = "Homo sapiens"  # 클래스 변수

    def __init__(self, name, age):
        self.name = name      # 인스턴스 변수
        self.age = age

p1 = Person("홍길동", 30)
p2 = Person("이몽룡", 20)

print(p1.species)  # Homo sapiens
print(p2.species)  # Homo sapiens
# 모든 Person 인스턴스가 같은 클래스 변수를 공유
저작자표시 비영리 변경금지 (새창열림)

'언어 > Python' 카테고리의 다른 글

예외 처리  (0) 2025.01.02
패키지(Package)  (2) 2025.01.01
함수(Function)  (0) 2024.12.31
리스트 컴프리헨션  (1) 2024.12.30
딕셔너리/집합/불 자료형, 변수 알아보기  (2) 2024.12.26
'언어/Python' 카테고리의 다른 글
  • 예외 처리
  • 패키지(Package)
  • 함수(Function)
  • 리스트 컴프리헨션
우는거북이
우는거북이
  • 우는거북이
    거북이는 울고 있다
    우는거북이
  • 전체
    오늘
    어제
    • 알아보기 (75) N
      • AI (4)
      • 언어 (16)
        • Python (15)
        • C언어 (1)
      • 알고리즘 (7)
      • 백준 (22)
      • 자료구조 (10)
      • 컴퓨터네트워크 (6)
      • 운영체제 (1)
      • 데이터통신 (9) N
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
우는거북이
클래스/객체/인스턴스
상단으로

티스토리툴바