
6.클래스
01 클래스란?
: 클래스는 설계도. 설계도만 가지고는 아무 일도 일어나지 않지만, 설계도로 만든 객체가 실제로 동작.
02 클래스 기본 구조
class Dog:
# 생성자 메서드: 객체가 만들어질 때 자동 실행
def __init__(self, name, age):
self.name = name # 강아지 이름
self.age = age # 강아지 나이
# 강아지 행동 메서드
def bark(self):
print(f"{self.name}가(이) 멍멍 짖습니다!")
- __init__ : 생성자. 객체 초기 설정을 담당.
- self: "이 객체 자신"을 가리키는 특별한 변수. 메서드 첫번째 매개변수로 직접 꼭 적어야 함.
(JAVA에서의 this와 의미는 동일하지만, this는 생략이 가능한 것에 반해 self는 꼭 적어야 한다는 점에서 약간의 차이가 있음.)
- self.name, self.age: 객체만의 정보를 저장.
03 객체 만들기와 사용
# 객체 생성
dog1 = Dog("초코", 3)
dog2 = Dog("보리", 2)
# 메서드 호출
dog1.bark() # 초코가(이) 멍멍 짖습니다!
dog2.bark() # 보리가(이) 멍멍 짖습니다!
- 하나의 클래스로 서로 다른 데이터를 가진 객체를 얼마든지 만들 수 있음.
-> Dog라는 클래스로 dog1, dog2 객체를 만든 것!
04 클래스와 함수
| 구분 | 함수(Function) | 클래스(Class) |
| 역할 | 동작 1번 실행 | 데이터 + 여러 동작 묶어서 관리 |
| 데이터 저장 | 함수 외부 변수에 저장 | 객체 안에 저장(self.변수) |
| 사용 방식 | 바로 호출 | 객체 생성 후 사용 |
05 예제: 학생 관리 프로그램
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade
def study(self, subject):
print(f"{self.name}이(가) [subject} 공부를 합니다.")
def introduce(self):
print(f"안녕하세요, 저는 {self.grade}학년 {self.name}입니다.")
# 객체 생성
s1 = Student("민준", 3)
s2 = Student("수아", 5)
# 메서드 실행
s1.introduce() # 안녕하세요, 저는 3학년 민준입니다.
s1.study("수학") # 민준이(가) 수학 공부를 합니다.
s2.introduce() # 안녕하세요, 저는 5학년 수아입니다.
s2.study("영어") # 수아이(가) 영어 공부를 합니다.
06 상속(Inheritance) 기초
: 상속이란 기존 클래스의 기능을 물려받아 확장하는 기능.
class Animal:
def speak(self):
print("소리를 냅니다!")
class Cat(Animal): # Animal 클래스를 상속
def speak(self):
print("야옹!") # 새롭게 재정의(Override)
ani1 = Animal()
ani1.speak() # 소리를 냅니다!
cat1 = Cat()
cat1.speak() # 야옹!
- 부모 클래스 기능을 그대로 쓰거나, 필요하면 새롭게 재정의(Override)할 수 있음.
'활동정리 > 모각코' 카테고리의 다른 글
| [모각코] 최종 회고 (3) | 2025.08.17 |
|---|---|
| [모각코]6주차 계획 (0) | 2025.08.15 |
| [모각코]5주차_파이썬_모듈 (4) | 2025.08.08 |
| [모각코]5주차 계획 (0) | 2025.08.08 |
| [모각코]4주차_파이썬_예외처리 (3) | 2025.08.01 |