본문 바로가기
python

python - 객체 지향 프로그래밍(Object Oriented Programming)

by orangecode 2022. 4. 27.
728x90
객체 지향 프로그래밍(Object Oriented Programming)

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 

프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고,

그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

 

 

객체 지향 프로그래밍 장단점

- 코드 재사용이 용이

남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다.

 

- 유지보수가 쉬움

절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. 

 

- 대형 프로젝트에 적합

클래스 단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 프로젝트를 개발할 때 업무 분담하기 쉽다.

 

- 단점

- 처리 속도가 상대적으로 느림

 

- 객체가 많으면 용량이 커질 수 있음

 

- 설계시 많은 시간과 노력이 필요

 

class와 instance

 

class + instance

 

class : 집단에 속하는 속성(attribute)과 행위(behavior) 변수와 메서드로 정의한 것, 객체를 만들기 위한 메타정보

instance : 객체, 정의한 클래스에 토대로 실제 메모리에 할당된 것.

 

- class : 분류, 그룹

- instance : 사례, 예제, 구체적 사례

  ex) 포유류(class) = 사람(instance1), 고양이(instance2), 개(instance3)

 

 

※ 추상화

공통의 속성이나 기능을 묶어 이름을 붙이는 것으로 클래스를 설계하는 것자체를 의미함

 

class, instance의 관계

 

출처 : 생활코딩 유튜브

class를 복제하여 instance를 만든다.

 

하나의 class를 생성하면, class를 복제한 여러개의 instance를 만드는데,

instanceclass와 동일한 변수와 함수를 가진다.

 

 

instance 마다 변수에 담겨있는 값이 다를 수 있다.

 

각각의 instance에 담겨있는 함수를 이용하는데, 함수가 속해있는 instance에 변수를 이용해서 처리한다.

 

객체 지향 프로그래밍의 사례
### 객체 지향 프로그래밍의 사례
name = 'kim' # 'kim' = 객체
names = ['kim', 'gong', 'jun'] # list 데이터 타입 -> 배열이면서 객체 타입


name = 'kim' # 문자열 만들기
# -> str = class, str('kim') = instance

String = class

String.new('kim) = instance

 

name = String.new('egoing')을 이용한 변수

 

 

 

 


Object(객체) -> Class를 통해 실제로 구현하고자 하는 것 ( 함수=메소드 또는 데이터집합)
Class --> 객체를 생성하기 위한 속성, 특성 등등을 누구나 쓸수 있는 함수+변수로 구현
Instance --> 클래스의 속성을 이어 받되, 변수를 달리 하는 것.

string.new(메소드) --> string은 클래스.. string.new(메소드) 전체가 instance.

 

이것의 결과가 객체(Object)

 

 

반응형

댓글