python-19: Class
클래스(반)
- 공통 요소가 모여 있는 곳
-
주어이다.
한국어 : 원숭이가 바나나를 먹는다.
영어 : Monkey eats banana.
파이썬 : Monkey.eat(“바나나”)
주어 동사 목적어
클래스는 문장의 맨 앞에 등장하므로
앞글자를 대문자로 작성한다. -
타입이다.
공통요소가 있는 것들을 여러 개 선언하면
비효율적이기 때문에, 클래스에 한 번씩 만 선언하고 해당 필드를 가져다 쓴다.
대신 해당 필드에 접근하기 위해서는 그 클래스의 타입으로 선언되어야 한다. -
추상적이다
한번 더 물어봐야함
클래스 선언
class 클래스명:
필드(객체, 메소드)
객체(instance variable)
- 클래스는 추상적인 개념이고 이 추상적인 개념을
- 실체화(구체화)시켜야지만 사용할 수 있다.
- 따라서 추상적인 개념을 실체화(구체화)시켜놓은 것을
객체
라고 한다.
ex)
[클래스] [객체]
자동차 엄마차
도형 세모
객체화(instance)
- 추상적인 개념을 구체화 시키는 작업
- 객체명 = 클래스명()
생성자
- 클래스명()을 생성자라고 하며, 이름 뒤에 소괄호가 있기 때문에 <br>
메소드의 기능과 똑같다. 하지만 리턴이 없기 때문에 메소드라고 <br>
부르지 않고 생성자라고 부른다.<br> - 클래스에 있는 필드를 메모리에 할당해 주고 그 필드의 주소값을 <br>
가지고 돌아 와야 하기 때문에, 개발자가 직접 리턴값을 작성하면 안된다.
생성자의 역할
- 해당 필드를 메모리(RAM)에 할당하고 할당된 필드의 주소값을 가져온다.
- 초기화
class test 1
class A:
data = 10
def printData(self):
print(self)
print(self.data)
def intro():
print("난 A 클래스이다.")
obj1 = A()
obj2 = A()
obj1.data = 20
print(obj1)
obj1.printData()
print(obj2)
obj2.printData()
A.intro()
- 클래스를 공유했을 때, 객체로 접근할 수있는건 self
class test2
class Car:
def __init__(self, brand="", color="", price=0):
self.brand = brand
self.color = color
self.price = price
def engineStart(self):
print(self.brand + "시동 킴")
def engineStop(self):
print(self.brand + "시동 끔")
momCar = Car("Benz", "Yellow", 35000)
dadyCar = Car("BMW", "BLUE", 15000)
myCar = Car()
momCar.engineStart()
dadyCar.engineStop()
- 생성자는 외부에서 전달받은 값으로
- 해당 필드의 객체에 알맞게 초기화하는 목적이 있다.
- 해당 필드의 객체에 전달받은 값들을 각각 초기화한다.
- 생성자는 __ 2개
댓글남기기