- 멤버 변수
# 멤버 변수 : 클래스 내부에 설정.
# 인스턴스 변수 : 객체별로 할당 된 변수.
# self.변수명으로 호출
# 클래스 변수 : 객체에 공통된 변수. 하나의 변수만 할당.
# 클래스명.변수명으로 호출
📌

class Car :
color = "" # 색상
speed = 0 # 속도
num = 0 # 자동차 번호
count = 0 # 자동차객체 개수
def __init__(self,v1="",v2=0) : # 생성자
self.color = v1 # 인스턴스 변수
self.speed = v2 # 인스턴스 변수
Car.count += 1 # 클래스 변수
self.num = Car.count # 인스턴스 변수
def printMessage(self) :
print("색상: %s, 속도: %dkm, 번호: %d, 생산번호: %d" %\\
(self.color,self.speed,self.num,Car.count))
car1 = Car("빨강",10)
car1.printMessage() # 결과 -> 색상: 빨강, 속도: 10km, 번호: 1, 생산번호: 1
car2 = Car("파랑")
car1.printMessage() # 결과 -> 색상: 빨강, 속도: 10km, 번호: 1, 생산번호: 2
car2.printMessage() # 결과 -> 색상: 파랑, 속도: 0km, 번호: 2, 생산번호: 2
❓ 문제 : card 클래스 구현하기

#문제 : card클래스 구현하기
#멤버 변수 : kind(카드 종류),number(카드숫자)
# no(카드번호),count(현재까지 생성된 카드 개수)
#멤버 함수 : printCard() kind:heart, number:1, no:1, count:1
class Card :
kind = ""
number = 0
no = 0
count = 0
def __init__(self,v1="Spade", v2=1) : # 생성자 오버로딩 불가능.
self.kind = v1
self.number = v2
Card.count += 1
self.no = Card.count
def printCard(self) :
print("kind: %s, number: %d, no: %d,count: %d" %\\
(self.kind,self.number,self.no,Card.count))
card1 = Card()
card1.printCard() #kind:Spade,number:1,no:1,count:1
card2 = Card("Heart")
card2.printCard() #kind:Heart,number:1,no:2,count:2
card3 = Card("Spade",10)
card1.printCard() #kind:Spade,number:1,no:1,count:3
card2.printCard() #kind:Heart,number:1,no:2,count:3
card3.printCard() #kind:Spade,number:10,no:3,count:3
- 상속
# 상속 : 기존의 클래스를 이용하여 새로운 클래스를 생성하는 방식
# 다중상속이 가능 하다.
# class 클래스명 (부모클래스1, 부모클래스2,...)
📌 상속

class Car : # 기본 생성자 제공 클래스
speed = 0
door = 3
def upSpeed(self,v) :
self.speed += v
print("현재 속도(부모클래스): %d" % self.speed)
# Sedan 클래스 : Car 클래스의 하위 클래스
# class Sedan extends Car {} : Java 방식
class Sedan(Car) : # Car 클래스를 상속
pass # 실행 내용이 없음. 부모클래스와 동일
# Truck 클래스 : Car 클래스의 하위클래스
class Truck(Car) : # 기본 생성자 제공 클래스
def upSpeed(self,v) : # 오버라이딩 : 부모클래스의 함수를 재 정의
self.speed += v
if self.speed > 150 :
self.speed = 150
print("현재 속도(자손클래스): %d" % self.speed)
car1 = Car()
car1.upSpeed(200)
sedan1 = Sedan()
sedan1.upSpeed(200) # Car 클래스의 upSpeed() 함수 호출
truck1 = Truck()
truck1.upSpeed(200) # Truck 클래스의 upSpeed() 함수 호출
'수업(국비지원) > Python' 카테고리의 다른 글
| [Python] 추상 함수, 모듈 (0) | 2023.04.24 |
|---|---|
| [Python] 클래스에서 사용되는 특별한 함수들 (0) | 2023.04.24 |
| [Python] 클래스 (0) | 2023.04.24 |
| [Python] 예외 처리 (0) | 2023.04.24 |
| [Python] 전역변수, 지역변수 (0) | 2023.04.24 |