1. 객체지향 프로그래밍
- 문제를 여러개의 객체 단위로 나눠 작업하는 방식
1-1. 객체(Object)란?
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함
1-2. 클래스(Class)란?
- 객체를 생성하기 위한 일종의 설계도와 같음
- 클래스는 프로퍼티(필드), 메소드(함수)로 구성되어 있음
- 프로퍼티(Property): 데이터가 저장되는 곳
- 메소드(method): 객체의 동작에 해당하는 실행 블록
1-3. 클래스와 객체
- 건축 설계도가 클래스라면, 실제로 지어진 집은 객체
- 객체는 클래스로 구성되어 구체화된 인스턴스
- 실제로 클래스가 인스턴스화 되어 메모리에 상주하는 형태를 객체라고 부름
- 파이썬의 모든 변수와 함수는 객체로 저장
2. 클래스 만들기
class 클래스명:
프로퍼티명1 = 값1
프로퍼티명2 = 값2
...
def 메소드명1(변수1, 변수2 ..):
메소드가 호출되면 실행할 문장
...
def 메소드명2(변수2, 변수2 ..):
메소드가 호출되면 실행할 문장
...
- 클래스를 통해 호출되는 변수를 프로퍼티(필드)라고 부름
- 클래스를 통해 호출되는 함수를 메소드라고 부름
- 객체생성을 하려 사용한다.
- 클래스안에 메소드를 넣어 동작을 시킬 수 있다.
3. 생성자(Construtor)
- 클래스를 객체화 시킬 때 가장 먼저 자동으로 실행되는 메소드
- __ init__(self)
- 생성자에서는 해당 클래스가 다루는 데이터를 정의하고 초기화 함
- 클래스 안의 메소드에서 생성하는것은 지역변수로 사용할 수 있다.
4. 메소드
- 해당 클래스의 객체에서만 호출가능한 함수
- 해당 객체의 속성에 대한 연산을 행함
- 객체이름.메소드명() 형태로 호출
4-2. 메소드 타입
- instance method: 객체 형태로 호출되기 때문에 해당 메소드를 호출한 객체에만 영향을 미침
- class method: 클래스 이름으로 호출하는 메소드(메소스 선언 위에 @staticmethod라고 표기)