클래스와 객체

2023. 11. 8. 20:00개발 문서/Python

728x90
반응형

클래스(Class)와 객체(Object)는 객체 지향 프로그래밍(OOP)의 중요한 개념입니다. 클래스는 객체의 템플릿 또는 설계도로, 객체는 클래스의 인스턴스입니다. 아래에서 클래스와 객체를 설명합니다:

클래스(Class):

  1. 속성(Attributes): 클래스는 속성을 정의하며, 이러한 속성은 클래스의 상태를 나타냅니다. 속성은 클래스 변수(class variables)로도 알려져 있습니다.

  2. 메서드(Methods): 클래스는 메서드를 정의하며, 이러한 메서드는 클래스의 행위를 나타냅니다. 메서드는 함수와 유사하지만 클래스와 관련된 동작을 수행합니다.

  3. 생성자(Constructor): 클래스는 생성자 메서드를 가질 수 있으며, 객체가 생성될 때 초기 상태를 설정하는 데 사용됩니다. 보통 __init__ 메서드로 정의됩니다.

  4. 인스턴스 변수(Instance Variables): 클래스의 각 객체는 고유한 상태를 유지하기 위해 인스턴스 변수를 가질 수 있습니다. 이러한 변수는 객체의 상태를 추적하는 데 사용됩니다.

  5. 클래스 변수(Class Variables): 클래스 변수는 클래스의 모든 객체에 의해 공유되며, 모든 객체가 동일한 값에 접근할 수 있습니다.

예를 들어, 아래는 Python에서 간단한 클래스를 정의하는 방법입니다:

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

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

    # 메서드
    def introduce(self):
        return f"My name is {self.name} and I am {self.age} years old."

# 클래스의 인스턴스 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

# 객체의 메서드 호출
print(person1.introduce())  # 출력: "My name is Alice and I am 30 years old."
print(person2.introduce())  # 출력: "My name is Bob and I am 25 years old."

# 클래스 변수에 접근
print(person1.species)  # 출력: "Homo sapiens"
print(person2.species)  # 출력: "Homo sapiens"

객체(Object):

  1. 객체 생성: 클래스를 기반으로 객체를 생성하려면 클래스 이름을 호출하고 필요한 인수(생성자에 전달되는)를 제공합니다.

  2. 속성 액세스: 객체는 클래스에서 정의한 속성 및 메서드에 접근할 수 있습니다. 속성에 접근할 때는 점 표기법을 사용합니다.

  3. 메서드 호출: 객체는 클래스에서 정의한 메서드를 호출할 수 있으며, 이를 통해 객체의 행위를 제어할 수 있습니다.

예를 들어, 위의 Person 클래스를 사용하여 객체를 생성하고 속성에 접근하는 방법은 다음과 같습니다:

person1 = Person("Alice", 30)
print(person1.name)  # 출력: "Alice"
print(person1.age)   # 출력: 30

클래스와 객체는 객체 지향 프로그래밍의 핵심 개념으로, 코드를 구조화하고 관리하는데 도움이 됩니다. 클래스는 추상화의 수단을 제공하며, 객체는 실제 데이터와 행위를 캡슐화하는 방법을 제공합니다. 이를 통해 코드의 재사용성과 유지보수성이 향상되고, 복잡한 시스템을 구축하는 데 도움이 됩니다.

'개발 문서 > Python' 카테고리의 다른 글

모듈과 패키지  (0) 2023.11.08
상속과 다형성  (0) 2023.11.08
객체 지향 프로그래밍  (0) 2023.11.08
문자열 다루기  (0) 2023.11.08
집합  (0) 2023.11.07