programTips.Tutorial

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

dd2i 2012. 12. 26. 13:08
반응형

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