반응형
1. 객체지향 프로그래밍(OOP) 개요 (첫 번째 시리즈 요약)
이전 글에서 객체지향 프로그래밍(OOP)의 핵심 개념을 소개했습니다. 주요 내용은 다음과 같습니다:
- 객체(Object): 속성과 동작을 가지는 독립적인 개체 (예: 자동차, 학생, 은행 계좌 등)
- 클래스(Class): 객체를 만들기 위한 설계도
- OOP의 4대 원칙:
- 캡슐화: 데이터를 보호하고 외부 접근을 제한
- 상속: 기존 클래스를 확장하여 새로운 클래스를 만듦
- 다형성: 동일한 메서드가 클래스에 따라 다르게 동작
- 추상화: 불필요한 정보를 숨기고 중요한 부분만 공개
이제, 클래스를 좀 더 깊이 있게 다루며 객체를 어떻게 활용하는지 살펴보겠습니다.
2. 클래스와 객체 만들기 (예제)
🔹 기본 클래스 정의 및 객체 생성
class Car:
def __init__(self, brand, color):
self.brand = brand # 속성(Attribute)
self.color = color # 속성(Attribute)
def drive(self):
return f'{self.color} {self.brand} 자동차가 달립니다!'
# 객체 생성
car1 = Car("Hyundai", "Red")
car2 = Car("BMW", "Blue")
# 메서드 호출
print(car1.drive())
print(car2.drive())
🖥 실행 결과
Red Hyundai 자동차가 달립니다!
Blue BMW 자동차가 달립니다!
3. 생성자와 소멸자
🔹 __init__: 생성자 (객체가 생성될 때 자동 호출됨)
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
print(f"{self.name} 객체가 생성되었습니다!")
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
🖥 실행 결과
Alice 객체가 생성되었습니다!
Bob 객체가 생성되었습니다!
🔹 __del__: 소멸자 (객체가 삭제될 때 자동 호출됨)
class Test:
def __init__(self, value):
self.value = value
print(f"객체 {self.value} 생성")
def __del__(self):
print(f"객체 {self.value} 삭제")
obj1 = Test(1)
obj2 = Test(2)
del obj1 # 명시적으로 객체 삭제
🖥 실행 결과
객체 1 생성
객체 2 생성
객체 1 삭제
반응형
4. 인스턴스 변수와 클래스 변수
🔹 인스턴스 변수 (객체마다 다름)
class Student:
def __init__(self, name, grade):
self.name = name # 인스턴스 변수
self.grade = grade # 인스턴스 변수
student1 = Student("Alice", "A")
student2 = Student("Bob", "B")
print(student1.name, student1.grade) # Alice A
print(student2.name, student2.grade) # Bob B
🔹 클래스 변수 (모든 객체가 공유)
class School:
school_name = "파이썬 고등학교" # 클래스 변수
def __init__(self, student_name):
self.student_name = student_name # 인스턴스 변수
student1 = School("Alice")
student2 = School("Bob")
print(student1.school_name) # 파이썬 고등학교
print(student2.school_name) # 파이썬 고등학교
5. 메서드의 종류 (추가 예제 포함)
🔹 인스턴스 메서드 (객체별 동작)
class Person:
def __init__(self, name):
self.name = name
def greet(self):
return f"안녕하세요, 저는 {self.name}입니다."
person = Person("Alice")
print(person.greet())
🔹 클래스 메서드 (클래스 변수를 조작)
class Car:
car_count = 0 # 클래스 변수
def __init__(self, brand):
self.brand = brand
Car.car_count += 1
@classmethod
def get_car_count(cls):
return f"총 자동차 개수: {cls.car_count}"
car1 = Car("Hyundai")
car2 = Car("BMW")
print(Car.get_car_count())
🔹 정적 메서드 (추가 예제: 단순 연산 수행)
class Math:
@staticmethod
def multiply(x, y):
return x * y
print(Math.multiply(3, 5)) # 15
🎯 마무리
이 글에서는 클래스와 객체의 개념, 생성자와 소멸자, 인스턴스 변수와 클래스 변수, 다양한 메서드 종류에 대해 알아보았습니다.
추가된 예제를 활용하여 실습하면서 개념을 확실히 익혀보세요! 다음 글에서는 상속과 다형성을 활용하는 방법을 다뤄보겠습니다! 🚀
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
반응형
'파이썬 > [객체지향 시리즈!]' 카테고리의 다른 글
📌 5. OOP 실전 프로젝트: 간단한 도서 관리 시스템 개발 (0) | 2025.02.07 |
---|---|
📌 4. 캡슐화와 추상화: 데이터 보호와 인터페이스 설계 (2) | 2025.02.06 |
📌 3. 상속과 다형성: 코드 재사용성과 확장성 높이기 (0) | 2025.02.05 |
📌 1. 객체지향 프로그래밍이란? (개념과 기본 원칙) (0) | 2025.02.03 |
댓글