
| 용어 | 설명 |
|---|---|
| 클래스(Class) | 제품 설계도 |
| 객체(Object) | 설계도로 만든 제품 |
| 속성(Attribute) | 클래스 안 변수 |
| 메서드(Method) | 클래스 안 함수 |
| 생성자(Constructor) | 객체를 만들 때 실행되는 함수 |
| 인스턴스(Instance) | 메모리에 살아있는 객체 |

🚨주의🚨 : 클래스에서의 생성자와 제너레이터(Generator)
- 생성자(Constructor) : 객체 생성 시 실행되는 함수
- 생성자(Generator) : 반복자(Iterator) 생성 함수, "yield 키워드 사용"
참고: 객체와 인스턴스의 차이를 면밀하게 보면..
- 객체 : 선언 형태 그대로 생성, 모든 인스턴스 포함, 클래스 타입으로 선언되면 객체
- 인스턴스 : 클래스로 구현된 구체적 실체, 객체 실체화한 것이 인스턴스, 객체가 메모리에 할당되어서 실제 사용되면 인스턴스!
class 클래스이름:
def 메서드이름(self):
명령블록
# 첫 클래스 만들기
class Aiffel: # 클래스 이름은 대문자로 시작!
def cheer(self):
print('끝까지 화이팅!')
# 클래스 출력은 객체를 만들고 그 객체에 메서드를 붙여야 한다!
객체 = 클래스 이름()
객체.메서드() # '객체의 메서드'로 해석하기
python = Aiffel()
python.cheer()

AiffelGood와 같은 캐멀 케이스 사용(이렇게 안해도 오류는 안나지만 개발자 간의 약속!)생성자 메서드 : __init__
python = Aiffel()처럼 객체를 만들 때 호출되는 메서드앞의 __
self.속성
self.name = name!
속성값을 받는 매개변수와 속성 자체를 받는 속성 이름을 동일하게 작성!
name에 전달해보자.
객체를 만들기 위해 클래스 할당 -> 자동으로 생성자 메서드 호출
a. 생성자 메서드가 돌면서 속성값 '김인유'가
b. 생성자 메서드의 2번째 매개변수인 name에 입력되어
c. 속성 self.name을 생성!

cheer 메서드를 호출하는 python.cheer() 실행 -> cheer 메서드에 python이 자동으로 삽입되어서 -> self.new 속성을 쓸 수 있음.


Aiffel() 클래스에 김인유를 넣은 객체인 python 생성
__init__ 호출__init__ 생성자가 호출되어self에 python 객체 입력되고name에 김인유 입력된다!
self.name이 python.name으로 완성되어 python에 할당
python 객체의 cheer 메서드 호출
python 객체가 자동으로 매개변수 self에 들어온다!cheer 메서드에서 print(f"{self.new}, 끝까지 화이팅!") 출력!
cheer 메서드 결과값 출력!