Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

따..딱히 공부하려고 포스팅하는 건 아니니까..!

객체지향 프로그래밍과 절차지향 프로그래밍 본문

C/C++

객체지향 프로그래밍과 절차지향 프로그래밍

보즈리 2014. 12. 2. 03:52


1. 객체 지향 프로그래밍(Object-Oriented Programming: OOP)

 소프트웨어를 객체 단위로 작성하는 방법



1) 객체지향의 기본요소


1. 클래스(Class)

 같은 종류의 집단에 속하는 속성과 행위를 정의한 것이며 객체지향 프로그램의 기본적인 사용자 정의 데이터형이라고 할 수 있다.


- 멤버 변수(필드, field) : 객체 안에 포함된 변수를 다른 일반적인 변수와 구별하기 위해 이름지은 것(클래스에서 자세한 설명)

- 멤버 함수(메소드, method) : 객체 안의 함수를 일반적인 함수와 구별하기 위해 이름지은 것

 

∴ 객체 ≒ 클래스, 객체 > 클래스 (클래스 = 설계도, 객체 = 제품)



2. 객체

 객체 지향 기술의 핵심 개념, 현실세계의 객체들을 흉내내어 소프트웨어 상에서 구현한 것이며 클래스의 인스턴스를 의미한다. 상태와 동작을 가지고 있다.

 

- 객체의 상태 : 객체의 속성(특징) = 클래스의 변수

- 객체의 동작 : 객체가 취할 수 있는 동작 = 클래스의 함수

 

∴ 객체는 변수와 함수로 이루어져 있는 소프트웨어의 묶음이라고 할 수 있다. (소프트웨어 객체 = 변수 + 함수)

 

 

2) 객체지향의 장점


1. 이전의 코드의 재사용성이 크다

2. 프로그래머가 사용하기 편리하다 (라이브러리의 기능이 완전하여 사용하기 편리하다)

3. 클래스 간에 독립적으로 디자인하여 결합력을 약하게 하고, 문제 해결을 위한 데이터들을 모아놓기 때문에 응집력이 강하다.



3) 객체지향 프로그래밍의 특징


1. 정보은닉 (private 기능)

 객체는 다른 객체의 내부 데이터를 직접 조작하지 않는다. 즉, 자신의 객체안에 있는 함수를 가지고 상호작용 함으로써 객체 내부 구현의 세부사항은 외부 세계로부터 감춰진다.

 

2. 상속

 기존의 코드를 재활용하기 위한 기법, 이미 작성된 클래스의 자료와 연산을 이어받아서 새로운 클래스에 적용하는 기능


3. 다형성

 한 객체가 취하는 동작이 상황에 따라서 달라지는 것을 말하며, 오버라이딩을 하여 한 클래스의 동작이 여러가지가 될 수 있는 것을 예로 들 수있다.


4. 캡슐화

 객체의 속성과 행위를 하나로 묶는 방법(= 데이터와 함수를 하나로 묶는 방법)이며 실제 구현내용 일부를 외부에 감추어 은닉한다. 주로 멤버함수를 호출할 때 멤버변수를 넘겨주어 반환하는 방법을 이용한다.


 

2. 절차 지향 프로그래밍(Procedural Programming)

 문제를 해결하는 알고리즘(절차)를 중요하게 생각하는 소프트웨어 개발방법 (주로 함수들의 집합으로 이루어짐)

 


절차 지향 프로그래밍의 단점


1. 과도한 전역 변수의 사용

 모든 함수에 대하여 변수가 개방되어있어서 변수의 값이 쉽게 변할 수 있다.


2. 프로그램의 이해가 어려워진다 

 함수의 개수가 많아지므로 힘듬, 코드가 지저분함


3. 변경하고 확장하기가 어렵다 

 객체지향에 비해 덜 독립적이어서 하나의 함수를 수정하면 다른 함수들이 영향을 많이 받는다.

 

∴ 절차 지향 프로그래밍의 단점은 결국 데이터(변수)와 함수가 분리된다는 점이다.


'C/C++' 카테고리의 다른 글

추상화(Abstraction)  (0) 2015.02.05
컴파일과 링크  (0) 2014.12.30
#define보다 const가 더 유용한 이유  (0) 2014.12.09
포인터(Pointer)와 레퍼런스(Reference)  (0) 2014.12.09
변수와 메모리공간  (0) 2014.12.02
Comments