반응형
클래스와 객체
프로그래밍에서 클래스를 사용하여 사물처럼 코드를 작성하는 것은 객체지향 프로그래밍(OOP)의 핵심입니다. 클래스와 객체는 데이터를 구조화하고 기능을 묶어주는 강력한 도구입니다. 파이썬에서 클래스를 정의하고 객체를 생성하는 방법을 소개하겠습니다.
클래스 정의
클래스는 객체의 설계도입니다. 클래스를 정의하려면 class
키워드를 사용합니다.
class 클래스이름:
def __init__(self, 매개변수1, 매개변수2, ...):
self.속성1 = 매개변수1
self.속성2 = 매개변수2
def 메서드이름(self, 매개변수들):
# 메서드 내용
객체 생성
클래스에서 객체를 생성하려면 클래스 이름을 함수처럼 호출합니다.
객체이름 = 클래스이름(인자1, 인자2, ...)
예제
간단한 클래스 예제
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name}가 짖습니다.")
# 객체 생성
my_dog = Dog("바둑이", 3)
my_dog.bark() # 바둑이가 짖습니다.
클래스와 객체의 사용 예제
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = f"{self.year} {self.make} {self.model}"
return long_name.title()
def read_odometer(self):
print(f"이 차의 주행거리는 {self.odometer_reading}마일입니다.")
def update_odometer(self, mileage):
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print("주행거리를 줄일 수 없습니다.")
# 객체 생성
my_car = Car('audi', 'a4', 2019)
print(my_car.get_descriptive_name()) # 2019 Audi A4
my_car.read_odometer() # 이 차의 주행거리는 0마일입니다.
my_car.update_odometer(500)
my_car.read_odometer() # 이 차의 주행거리는 500마일입니다.
실습 과제
Person
클래스를 작성하세요. 이 클래스는 이름과 나이를 속성으로 가지고,introduce
라는 메서드를 통해 자신의 이름과 나이를 출력하는 기능을 가집니다.BankAccount
클래스를 작성하세요. 이 클래스는 계좌번호와 잔액을 속성으로 가지고,deposit
메서드와withdraw
메서드를 통해 입금과 출금을 처리하는 기능을 가집니다.Rectangle
클래스를 작성하세요. 이 클래스는 가로와 세로를 속성으로 가지고,area
메서드를 통해 사각형의 넓이를 계산하고perimeter
메서드를 통해 둘레를 계산하는 기능을 가집니다.
실습 과제 답안
1. Person
클래스
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"안녕하세요, 저는 {self.name}이고, 나이는 {self.age}살입니다.")
# 테스트
person1 = Person("홍길동", 25)
person1.introduce() # 안녕하세요, 저는 홍길동이고, 나이는 25살입니다.
2. BankAccount
클래스
class BankAccount:
def __init__(self, account_number, balance=0):
self.account_number = account_number
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("123-456-789", 1000)
account.deposit(500) # 500원이 입금되었습니다. 현재 잔액은 1500원입니다.
account.withdraw(200) # 200원이 출금되었습니다. 현재 잔액은 1300원입니다.
account.withdraw(2000) # 잔액이 부족합니다.
3. Rectangle
클래스
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)
# 테스트
rect = Rectangle(4, 7)
print(f"사각형의 넓이: {rect.area()}") # 사각형의 넓이: 28
print(f"사각형의 둘레: {rect.perimeter()}") # 사각형의 둘레: 22
'실버를 위한 코딩 > 파이썬 연습' 카테고리의 다른 글
[파이썬 연습] 내장 변수 __name__ (1) | 2024.08.11 |
---|---|
[파이썬 연습] 예외 처리 작성하기 (1) | 2024.08.10 |
[파이썬 연습] 함수 (0) | 2024.08.08 |
[파이썬 연습] 조건문과 반복문 (0) | 2024.08.07 |
[파이썬 연습] 기본 타입 데이터 (0) | 2024.08.06 |