1. 객체 지향 프로그래밍
- 객체: 함수와 변수를 하나의 단위로 묶을 수 있는 방법 > 이러한 프로그래밍 방식을 '객체 지향 프로그래밍' 이라 함
- 서로 관련 있는 데이터와 함수를 묶어서 객체로 만들어 생각하는 방법
- 객체들은 다른 객체들과 메시지를 통해 상호 작용 함
2. 절차 지향 프로그래밍 ↔ 객체 지향 프로그래밍
1) 절차 지향 프로그래밍: 프로시저를 기반으로 하는 프로그래밍(함수들의 집합)
※ 서로 관련된 데이터와 함수를 묶을 수 없는단점이 있음
2) 객체 지향 프로그래밍: 데이터와 함수를 하나의 덩어리(객체)로 묶어서 생각하는 방법
※ 캡슐화: 데이터와 함수를 하나의 덩어리(객체)로 묶는 것
3. 객체(ft. 속성, 동작)
1) 객체 = 데이터 + 함수(알고리즘) = 속성 + 동작
2) 속성: 객체의 특징 / 바뀔 수 있는 것 / 값이 들어가는 것
3) 동작: 함수와 같음
4. 클래스(ft. 인스턴스)
1) 클래스: 객체에 대한 설계도 = 특정 종류 객체를 찍어내는 틀
2) 인스턴스: 클래스로부터 만들어지는 객체를 그 클래스의 인스턴스 라고 함(인스턴스 변수)
ex) 붕어빵 틀(클래스) → 붕어빵(인스턴스)
※ 객체 != 인스턴스
5. 공용 인터페이스(ft. 캡슐화)
1) 공용 인터페이스: 클래스에 의하여 제공되는 메소드
2) 캡슐화: 공용인터페이스만 제공하고 구현 세부 사항을 감추는 것('정보 은닉'이라는 말에 조금 더 가까움..!)
3) 캡슐화 하는 이유: 데이터를 보호하기 위함 / 사용자가 내부 메소드가 어떻게 구현되는지 알 필요가 없음
6. self 매개변수
: 객체 자신을 참조하는 변수 / 어떤 객체가 메소드를 호출했는지를 알아야 하는데, 이 self 매개변수가 이를 알려줌
7. 인스턴스 변수, 지역변수, 전역변수
1) 인스턴스 변수: 클래스 안에 선언된 변수, 앞에 self가 붙음(클래스 내 전체에서 사용 가능)
2) 지역변수: 함수/메소드 안에서 선언된 변수(선언된 범위 내에서만 사용 가능)
3) 전역 변수: 함수/메소드 외부에서 선언된 변수
※ NOTE
- self를 붙이지 않고 변수를 생성하면 지역 변수가 됨 !
ex) def show(self):
s = "현재 설정값" # s가 지역변수가 됨
print(s, self.count)
→ 변수 s는 앞에 self가 없기 때문에, 인스턴스 변수가 아니다 / 단순히 함수 안에 정의되는 지역변수다.
(메소드도 마찬가지로, 클래스 안에서 다른 메소드를 호출하려면 앞에 self를 붙여야 함)
6. 클래스 작성하기
| class 클래스이름: #항상 대문자로 시작 def __init__(self, ... ): #생성자 정의 self.count = 0 #count >> 인스턴스 변수 def 메소드1(self, ... ): #메소드 정의 .... |
1) 클래스 안에는 변수(인스턴스 변수)와 함수(메소드)를 정의 함
2) 클래스의 멤버: 인스턴스 변수 + 메소드
3) 인스턴스 변수: 클래스 안에 정의된 변수
'파이썬' 카테고리의 다른 글
| 파이썬 자료구조(tuple, set, dictionary) (0) | 2024.05.19 |
|---|---|
| 파이썬 리스트(List) (0) | 2024.05.19 |