1 분 소요

클래스(반)

  • 공통 요소가 모여 있는 곳
  1. 주어이다.
    한국어 : 원숭이가 바나나를 먹는다.
    영어 : Monkey eats banana.
    파이썬 : Monkey.eat(“바나나”)
    주어 동사 목적어
    클래스는 문장의 맨 앞에 등장하므로
    앞글자를 대문자로 작성한다.

  2. 타입이다.
    공통요소가 있는 것들을 여러 개 선언하면
    비효율적이기 때문에, 클래스에 한 번씩 만 선언하고 해당 필드를 가져다 쓴다.
    대신 해당 필드에 접근하기 위해서는 그 클래스의 타입으로 선언되어야 한다.

  3. 추상적이다
    한번 더 물어봐야함

클래스 선언

  class 클래스명:
		필드(객체, 메소드)

객체(instance variable)

  • 클래스는 추상적인 개념이고 이 추상적인 개념을
  • 실체화(구체화)시켜야지만 사용할 수 있다.
  • 따라서 추상적인 개념을 실체화(구체화)시켜놓은 것을 객체라고 한다.
  ex)
	[클래스] 	[객체]
	자동차	              엄마차
	도형            	세모

객체화(instance)

  • 추상적인 개념을 구체화 시키는 작업
  • 객체명 = 클래스명()

생성자

- 클래스명()을 생성자라고 하며, 이름 뒤에 소괄호가 있기 때문에 <br>
  메소드의 기능과 똑같다. 하지만 리턴이 없기 때문에 메소드라고 <br>
  부르지 않고 생성자라고 부른다.<br>   - 클래스에 있는 필드를 메모리에 할당해 주고 그 필드의 주소값을 <br>
  가지고 돌아 와야 하기 때문에, 개발자가 직접 리턴값을 작성하면 안된다.

생성자의 역할

  1. 해당 필드를 메모리(RAM)에 할당하고 할당된 필드의 주소값을 가져온다.
  2. 초기화

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개

image

댓글남기기