OOP(Object Oriented Programming). 객체지향프로그래밍
객체 지향적 프로그래밍(Object Oriented Programming)방식의 기본철학
매번 비슷 비슷한 코드들 대충 만들어 쓰지 말고 조금 어렵고 힘들더라고 닥 한 번만 고생해서 제대로 만들어 놓고 다음부터는 재활용만 하자.
객체지향 = 특정언어의 기능이 아님. 언어나 개발툴의 기능이 아님. 프로그래머가 문제를 푸는 사고 방식.
객체 지향적 프로그래밍(Object Oriented Programming)방식
1. 문제의 핵심인 데이터를 정의하고
2. 데이터에 절차를 결합하여
3. 현실의 사물을 표현할 수 있는 객체를 만든다.
4. 그리고 이런 독립적인 객체를 조립하여 프로그램을 완성해 나간다.
묶음. 숨김. 개념. 재사용. 상황에 따라 柔한 대처능력
객체 지향적 프로그래밍(Object Oriented Programming)방식의 특징
1. 묶는다 - 캡슐화 Encapsulation : 표현할 자료(Data)와 동작(Function)을 하나의 단위로 묶는 행위. 묶어진 것= 객체(Object).
2. 숨긴다 - 정보은폐 Information Hiding : 외부에서 객체의 상태를 바꾸거나 허가되지 않은 동작을 요청하지 못하도록 스스로의 안정성 확보 수단.
3. 표현한다 - 추상화 Abstraction (=개념화) : 객체의 효율적이고 안전한 사용을 위해 인터페이스를 설계하는 것이며, 캡슐화와 정보은폐에 의해 구현.
4. 재사용한다 - 상속 Inheritance : 이미 만들어진 클래스를 파생시켜 새로운 클래스 정의.
5. 상황에 따라 달라진다 - 다형성 Polymorphism : 똑같은 호출이라도 상황에 따라, 호출하는 객체에 따라 다른 동작을 할 수 있는 능력.
절차식 프로그래밍 (Procedural Programming) |
객체 지향적 프로그래밍 (Object Oriented Programming)방식 |
|
---|---|---|
개발방법 |
문제를 푸는 절차 중심의 개발방법 |
객체에 초점을 두고 문제 해결해 나가는 방식 |
문제 해결방식 | 1. 문제분석 후 문제해결에 필요한 명령 선정, 명령 표현 2. 구현된 명령들을 순서에 맞게 배치하여 원하는 동작을 하도록 프로그램을 완성 하향식(Top Down) | 1. 객체 모델링 2. 객체를 구성하는 속성과 동작을 하나로 묶고 3. 필요한 인터페이스를 외부로 공개하면 객체가 정의된다. 4. 부품이 되는 객체끼리 조립하고 상호동작하도록 연결하면 프로그램 완성. 상향식(Bottom Up) |
장단점 |
구조간결. 결과프로그램의 성능 좋음. 낮은생산성 현실의 문제에 맞게 코드 수정.수정.수정.하고 또 수정. 인력낭비 -> 소프트웨어 공급부족. | 만들어진 객체는 재사용 가능. 부품의 안정성 ↑ 확장성 ↑ (=유지, 보수 편리) 개발 속도 ↑ 조립식이므로 개발기간, 인건비, 비용은 절감 |
'programTips.Tutorial' 카테고리의 다른 글
포인터 배열(Array of Pointer) (0) | 2012.12.26 |
---|---|
C++ (0) | 2012.12.26 |
비트 구조체 (0) | 2012.12.26 |
new (0) | 2012.12.26 |
C++ (0) | 2012.12.26 |
[C] 함수 (0) | 2012.12.21 |
[C] 배열(Array) (0) | 2012.12.18 |
[C] 동적메모리할당. (0) | 2012.12.17 |
[C] void형 포인터 (0) | 2012.12.17 |
[C] 포인터 (0) | 2012.12.17 |