파이썬 공부를 하면서 OOP라는 단어를 처음 들었다. 이게 뭐지..?
객체 지향 프로그래밍이라고 했다. 이건 들어봤다. 정보처리기사 공부를 하거나, 자바로 앱을 만들 때 들어보았다.
하지만, 나는 지금도 OOP가 뭔지 구체적으로 설명을 못한다. (그냥 느낌으로만 알고 있...다..?)
그래서 OOP에 대해서 블로그를 쓰면서 공부를 해볼 것이다.
객체 지향 프로그래밍(OOP)
OOP는 프로그램 설계방법론이자 일종의 개념이다.
단순히 프로그램을 데이터와 처리 방법으로 나눈 것이 아닌, 프로그램을 "객체(Object)"라는 기본 단위로 나누고, 이들간의 상호작용하는 방식이다. 객체란, 하나의 역할을 수행하는 "메소드와 변수(데이터)"의 묶음이다.
구성 요소
- 클래스(Class)
- 객체(Object)
- 메서드, 메시지(Method, Message)
클래스(Class)는 문제 해결을 위한 집단이며, 속성(attribute), 행위(Behavior)를 정의한 것이다. 또한, 외부 요소와 독립적으로 디자인하여야 한다.
객체(Object)는 클래스의 인스턴스(실제 메모리에 할당되는 것)이다. 객체는 고유의 속성을 가지며 클래스에서 정의한 행위를 수행한다.
메서드(Method), 메시지(Message)는 객체에 명령을 내리는 메시지이다. 메서드는 객체의 서브루틴 형태로 객체의 속성을 조작하는 데 사용된다. 즉, 객체 간의 통신은 메시지를 통해 이루어진다.
이해를 돕기 위한 예제
나는 프로그래밍 공부를 하면서 정의만 써져있는 설명은 읽어도, 이해를 못한다. 모든 프로그래밍의 시작과 끝은 이진수(0,1)이기 때문에 개념과 실행 과정은 결국 머리 속에서 시각화를 해야한다. 그래서 예제를 봐야지만 이해가 간다.
(틀릴수는 있어요)
class Bus:
# 속성
번호 = 5100
연비 = 10
속도 = 80
# 메서드(행위)
def 감속하다(self):
return Bus.속도 - 10
def 가속하다(self):
return Bus.속도 + 10
Bus1 = Bus()
print("감속 : {}".format(Bus1.감속하다()))
>>> 감속 : 70
print("연비 : {}".format(Bus1.연비))
>>> 연비 : 10
'파이썬' 카테고리의 다른 글
[파이썬] 판다스 캐글 타이타닉 데이터 불러와 맛만 보기 (0) | 2022.04.19 |
---|---|
[파이썬] 판다스(Pandas) 메서드 실습 (0) | 2022.04.18 |
[파이썬] 넘파이(Numpy) 메서드 실습 (0) | 2022.04.15 |
[파이썬] 판다스(Pandas) 란 (0) | 2022.04.15 |
[파이썬] 넘파이(Numpy) 란 (0) | 2022.04.15 |