클래스(Class)와 인스턴스(Instance)
클래스(Class)
- 반복되는 불필요한 소스코드를 최소화 하면서 현실 세계의 사물을 컴퓨터 프로그래밍 상에서 쉽게 표현할 수 있도록 해주는 프로그래밍 기술
인스턴스(Instance)
- 인스턴스(Instance) : 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수
클래스 구성
클래스 멤버
클래스의 함수
>>>class Car:
def __init__(self, name, color):
self.name = name
self.color = color
def __del__(self):
print("인스턴스를 소멸시킵니다")
def show_info(self):
print("이름:", self.name, "/ 색상:", self.color)
def set_name(self, name):
self.name = name
>>>car1 = Car("소나타", "빨간색")
>>>car1.show_info()
이름: 소나타 / 색상: 빨간색
>>>car2 = Car("아반떼", "검은색")
>>>car2.show_info()
이름: 아반떼 / 색상: 검은색
>>>print(car1.name, "을(를) 구매했습니다")
소나타 을(를) 구매했습니다
>>>car1.set_name("그랜져")
>>>print(car1.name, "을(를) 구매했습니다")
그랜져 을(를) 구매했습니다
>>> del car1
인스턴스를 소멸시킵니다
>>>car1.show_info()
NameError : name 'car1' is not defined
클래스의 상속
상속
- 다른 클래스의 멤버 변수와 메소드를 물려 받아 사용하는 기법
- 클래스를 매번 생성할 필요 없음
- 부모와 자식관계가 존재함
- 자식클래스 : 부모 클래스를 상속 받은 클래스
Class Unit:
def __init__(self, name, power):
self.name = name
self.power = power
def attack(self):
print(self.name, "이(가) 공격을 수행합니다. [전투력:", self.power,"])
Class Monster(Unit):
def __init__(self, name, power, type):
self.name = name
self.power = power
self.type = type
def show_info(self):
print("몬스터 이름:", self.name, "/몬스터 종류:", self.type)
>>> unit = Unit("홍길동", 375)
>>> unit.attack()
홍길동 이가 공격을 수행합니다 [전투력: 375]
>>> monster = Monster("슬라임", 10, "초급")
>>> monster.attack()
슬라임 이가 공격을 수행합니다 [전투력: 10]
>>> monster.show_info()
몬스터 이름: 슬라임 / 몬스터 종류: 초급
>>> unit.show_info()
Error!!