프로그래밍

파이썬 기초 강의 1-10: 객체 지향 프로그래밍 (OOP)

코드금융 2025. 1. 17. 07:36
728x90
반응형

 

 

Python 기초 강의 1-10: 객체 지향 프로그래밍 (OOP)

클래스와 객체를 활용한 프로그래밍 배우기

1. 객체 지향 프로그래밍이란?

객체 지향 프로그래밍(OOP, Object-Oriented Programming)은 객체를 중심으로 코드를 작성하는 프로그래밍 패러다임입니다. 객체는 데이터(속성)와 이를 처리하는 함수(메서드)를 포함합니다.

2. 클래스와 객체

Python에서 클래스는 객체를 생성하기 위한 템플릿이며, 객체는 클래스의 인스턴스입니다.

2.1 클래스 정의와 객체 생성

# 클래스 정의
class Person:
    def __init__(self, name, age):
        self.name = name  # 속성
        self.age = age    # 속성

    def greet(self):  # 메서드
        print(f"안녕하세요, 제 이름은 {self.name}이고, {self.age}살입니다.")

# 객체 생성
person1 = Person("철수", 25)
person1.greet()  # 출력: 안녕하세요, 제 이름은 철수이고, 25살입니다.
        

3. 클래스의 구성 요소

3.1 생성자

생성자는 객체를 초기화할 때 호출되는 특별한 메서드입니다. __init__()를 사용합니다.

# 생성자 사용 예제
class Car:
    def __init__(self, brand, model):
        self.brand = brand
        self.model = model

car1 = Car("Hyundai", "Sonata")
print(car1.brand)  # 출력: Hyundai
        

3.2 메서드

메서드는 클래스 내에서 정의된 함수로, 객체의 동작을 정의합니다.

# 메서드 예제
class Calculator:
    def add(self, a, b):
        return a + b

calc = Calculator()
print(calc.add(5, 10))  # 출력: 15
        

3.3 속성

속성은 객체의 데이터를 저장하는 변수입니다.

# 속성 예제
class Animal:
    def __init__(self, species):
        self.species = species

dog = Animal("개")
print(dog.species)  # 출력: 개
        

4. 상속

상속은 기존 클래스(부모 클래스)의 기능을 새로운 클래스(자식 클래스)에서 재사용하거나 확장하는 데 사용됩니다.

# 상속 예제
class Animal:
    def __init__(self, species):
        self.species = species

    def speak(self):
        print("소리를 냅니다.")

class Dog(Animal):  # Animal을 상속받음
    def speak(self):
        print("멍멍!")

dog = Dog("개")
dog.speak()  # 출력: 멍멍!
        

5. 실습: 간단한 은행 시스템

객체 지향 프로그래밍을 활용해 간단한 은행 시스템을 구현해 봅시다.

# 은행 시스템 예제
class BankAccount:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance

    def deposit(self, amount):
        self.balance += amount
        print(f"{amount}원이 입금되었습니다. 현재 잔액: {self.balance}원")

    def withdraw(self, amount):
        if amount > self.balance:
            print("잔액이 부족합니다.")
        else:
            self.balance -= amount
            print(f"{amount}원이 출금되었습니다. 현재 잔액: {self.balance}원")

# 계좌 생성 및 사용
account = BankAccount("철수", 1000)
account.deposit(500)  # 출력: 500원이 입금되었습니다. 현재 잔액: 1500원
account.withdraw(2000)  # 출력: 잔액이 부족합니다.
        

6. 요약

이번 강의에서는 Python 객체 지향 프로그래밍(OOP)의 기본 개념, 클래스와 객체의 정의, 생성자, 메서드, 속성, 상속 등을 배웠습니다. 객체 지향 프로그래밍을 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.

다음 강의 예고

1-11 강의: Python의 모듈과 패키지에 대해 학습합니다!

728x90
반응형