이 질문에 대답을 하기전, 우선 프로그래밍 언어들이 나누어지는 기준을 알아야 합니다.
크게 절차 지향 언어와, 객체지향 언어입니다.
대략적으로
절차 지향 언어는 C언어를 생각하시면 되며, 객체 지향 언어는 Python의 예시를 생각해보시면 됩니다.
C언어의 경우는 오로직 위에서 아래로 흘러가는 프로그래밍 기법을 사용하고 있으나,
Python의 경우는 이와는 별개로 독립적인 프로그래밍 기법을 사용하고 있습니다.
Ref)
2020/12/30 - [* IT/Dictionary] - 객체지향 언어를 위한 필수 지식 : 객체(Object)와 클래스(Class) 개념
객체 지향 프로그래밍(Object Oriented Programming)란?
: 절차 지향의 반댓말로, 함수를 시작해서 끝으로 흐르는 절차적인것으로 보지 않고 함수, 모듈 각각이
독립적인 존재로 필요할 때 마다 꺼내 쓸 수 있도록 구현해놓은 프로그래밍
쉽게 말하면, 프로그래밍을 하는 대상을
인간 세상의 사물과 현상 모두를 객체(Object)로 담아서 표현하는 프로그래밍 기법
프로그램을 부분부분 만들어 놓고 이를 조립해서 전체를 완성하는 법
Ex) 자동차(프로그램) = 몸체(객체) + 바퀴(객체) + 핸들(객체)
그렇다면 왜 객체 지향 프로그래밍을 쓸까?
3가지의 이점이 있기 때문이다.
- (관리)의 용이성
: 일부가 고장이 나면 부분만 고치면 가능.
- 프로그램 (확장)이 편함
: 새로운 무언가를 추가 할때 편함
- 객체 (재사용) 가능
: 특정 객체를 다른곳에서 사용 가능
그렇다면 객체 지향 프로그래밍의 특성은 무엇이 있을까요?
캡슐화, 상속성, 다형성 이라는 특징이 있다.
< 캡슐화 >
기본적으로 객체는 클래스라는 틀안에서 제작되어 만들어지게 됩니다. 즉 클래스는 객체를 포함하고 있다.
객체를 또 다시 분해해보면, 특성과 메소드를 가지고 있다.
(위의 Ref 참조)
클래스 안에는 객체가 있다. 그 객체는 특성과 메소드를 가지고 있다.
클래스는 마치 캡슐처럼 객체를 품고 있다.
< 상속성 >
: 상속이 가능한 성질
부모 클래스를 이어 받아 자식 클래스에게 상속을 해주는 개념
< 다형성 >
: 형태가 다양한 성질
즉, 같은 모양의 코드가 다른 동작을 하게 되는것을 의미한다.
Ex)
키보드를 누를 때
push(keyboard): 키보드를 누른다
push(Enter), push(ESC), push(Shift) 등 동작이 다른것을 나타낸다.
Ref)
'* Language > Python' 카테고리의 다른 글
[파이썬 Python] 쉽게 이해하는 continue, break (0) | 2021.08.26 |
---|---|
[Python] 파이썬 반복문(for문)을 이해하기 전... (0) | 2021.02.15 |
[Python] 파이썬 : 예외 처리(try-except-finally) 단계별로 이해하기 (0) | 2020.12.24 |
[Python] 파이썬 : sort()와 sorted() 차이 (1) | 2020.12.20 |
[Python] 파이썬 : map()함수 왜 쓰는지와 사용법 단계별로 이해하기 (0) | 2020.11.30 |
댓글