프로그래밍에서도 현실처럼 물건이나 개념을 객체로 표현할 수 있어요.
이를 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이라고 부르죠.
파이썬에서는 클래스(class)와 객체(object)라는 두 개념을 통해 OOP를 구현합니다.
오늘은 현실 속 강아지를 예시로 들어 클래스와 객체의 개념을 쉽게 알아보겠습니다.
■ 클래스와 객체의 개념
클래스는 일종의 ‘설계도’라고 할 수 있어요.
예를 들어, 강아지 클래스는 모든 강아지들의 특징을 담은 설계도입니다.
이 설계도로부터 만든 실제 강아지 한 마리가 객체가 되는 거죠.
class Dog: # 강아지 클래스 정의 def __init__(self, name, age): # 생성자 (객체 초기화 메서드) self.name = name self.age = age def bark(self): # 강아지가 짖는 메서드 print(f"{self.name}가 멍멍 짖고 있어요!") |
여기서 __init__()은 객체가 만들어질 때 자동으로 실행되는 생성자에요.
이름과 나이를 받아서 강아지 객체의 특성을 초기화하죠.
■ 객체 만들기: 강아지 두 마리 생성
이제 강아지 두 마리를 만들어 볼게요.
클래스로 만든 각각의 객체는 독립적인 데이터를 가집니다.
dog1 = Dog("바둑이", 3) # 첫 번째 강아지 객체 생성 dog2 = Dog("초코", 1) # 두 번째 강아지 객체 생성 print(f"{dog1.name}는 {dog1.age}살입니다.") dog2.bark() # 초코가 짖기 |
실행 결과:
바둑이는 3살입니다. 초코가 멍멍 짖고 있어요! |
■ 메서드 활용과 객체 간 차이점
각 객체는 자신만의 속성(attribute)을 가지고 있어요.
예를 들어, dog1과 dog2는 서로 다른 이름과 나이를 갖고, 독립적으로 행동합니다.
객체가 각각의 특성을 갖는다는 게 OOP의 핵심이에요.
■ 클래스와 메서드를 확장하기 . 강아지의 새로운 기능 추가
강아지 클래스에 새로운 메서드를 추가해 볼게요.
예를 들어, 강아지가 나이를 먹는 기능을 넣어보겠습니다.
class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print(f"{self.name}가 멍멍 짖고 있어요!") def get_older(self): # 나이를 한 살 더 먹는 메서드 self.age += 1 print(f"{self.name}는 이제 {self.age}살이에요!") |
이제 강아지들이 나이를 먹을 수 있게 됐어요!
dog1 = Dog("바둑이", 3) dog1.get_older() # 바둑이가 4살이 됨 |
실행 결과:
바둑이는 이제 4살이에요! |
반응형
'IT > 파이썬 Python' 카테고리의 다른 글
파이썬 초보자를 위한 작은 도전 - 숫자 맞추기 게임 만들기 (0) | 2024.11.05 |
---|---|
모듈과 라이브러리로 파이썬을 확장하는 법 (0) | 2024.11.04 |
메모는 이제 코드로! 파이썬 입출력 쉽게 이해하기 (5) | 2024.11.02 |
코딩 에러? 파이썬 예외 처리 완벽 가이드 (0) | 2024.11.01 |
코드 재사용의 왕도! 파이썬 함수와 모듈 사용법 (1) | 2024.10.31 |
댓글