본문 바로가기
수업(국비지원)/Python

[Python] 클래스

by byeolsub 2023. 4. 24.
###############
# 클래스 : 사용자 정의 자료형
#          구조체 + 함수 => 변수 + 함수의 모임. 불완전 객체 지향
# 상속 : 다중 상속이 가능. 하나의 클래스에 여러개의 부모클래스가 존재 
#       (자바는 단일 상속.) 
# self : 자기참조변수. 인스턴스 함수의 매개변수로 설정해야 한다.(무조건) 
# 생성자 : 객체가 생성될 때 자동으로 호출되는 메서드 
          def__init__(self) : 
###############

 

 📌

class Car() : # 기본 생성자 제공 클래스 : 생성자를 구현하지 않음.
   color = "" # 멤버 변수
   speed = 0  # 멤버 변수
   def upSpeed(self,value) : # 멤버 함수(메서드)
       self.speed += value
   def downSpeed(self,value) : # 멤버 함수(메서드)
       self.speed -= value

car1 = Car() # 객체화 
car1.color = "빨강"
car1.speed = 10

car2 = Car() # 객체화
car2.color = "파랑" 
car2.speed = 20
car2.upSpeed(30) 
print("자동차1의 색상: %s, 현재속도: %dkm" %(car1.color,car1.speed)) 
print("자동차2의 색상: %s, 현재속도: %dkm" % (car2.color,car2.speed))

📌

### 생성자 구현하기
class Car :
   color = "" # 멤버 변수
   speed = 0 # 멤버 변수
   def __init__(self,v1,v2=0) : # 생성자. 인스턴스 메서드이므로 self 변수 필요 
        self.color = v1 # 인스턴스 변수
        self.speed = v2 # 인스턴스 변수
        
   def upSpeed(self,value) : # 멤버 함수(메서드)
        self.speed += value
   def downSpeed(self,value) : # 멤버 함수(메서드)
        self.speed -= value

car1 = Car("빨강",10) # 객체화. 생성자 호출. 오버로딩 할 수 없음. 
car2 = Car("파랑",20)
car3 = Car("노랑")
car2.upSpeed(30)
print("자동차1의 색상: %s, 현재속도: %dkm" % (car1.color,car1.speed)) 
print("자동차2의 색상: %s, 현재속도: %dkm" % (car2.color,car2.speed))  
print("자동차3의 색상: %s, 현재속도: %dkm" % (car3.color,car3.speed))