본문 바로가기
Software Engineering

객체지향

by Doromi 2019. 4. 17.
728x90
반응형

객체지향 핵심개념

 

Object-Oriented Concepts

 

Object

 

 

- 객체지향적 시각

하나의 프로그램은 여러 개의 객체들로 구성된다.
각 객체는 소수의 테이터와 함수들로 구성된다.

Objects + Objects = Program
Data Structures + Algorithms = Object

객체란?

필요로 하는 데이터와 그 데이터 위에 수행되는 함수들을 가진 작은 소프트웨어 모듈

특정 데이터와 관련된 함수들을 가지는 프로그램 모듈

캡슐화와 정보은닉의 개념을 프로그램에서 효과적으로 사용할 수 있도록 한 장치

 

 

데이터란?

객체의 상태를 저장하는데 사용

 

함수란?

그 객체가 수행할 수 있는 기능을 정의

객체의 조건
상태(State)를 가져야 한다.
행위(Behavior)를 가져야 한다.
고유의 식별자(Identity)를 가져야 한다.

 

 

캡슐화(Encapsulation)
특정 데이터와 관련된 함수들을 한 덩어리로 묶는다.

캡슐화

 

EX) c++의 캡슐화 장치

 

 

정보은폐(Information Hiding)
캡슐 내부의 정보를 외부에 감추는 것을 의미한다.
캡슐화 그 자체가 캡슐 안의 내용이 외부에 보이지 않는 것을 의미하지는 않기 때문에,
정보은폐를 통해 객체에 블랙박스(Black box)를 씌워서 내부의 정보를 감춘다.

정보은폐

 

 

인터페이스(Public Interface)
외부 객체들이나 프로그램들이 접근할 수 있는 데이터와 함수들을 정의하여,
외부에서 이 인터페이스를 통해서 정보를 검색하거나 함수를 실행하도록 한다.

 

 

 

메시지(Message)


객체 접근방법

- 한 객체는 다른 객체에게 메시지를 보내어 교류한다.


메시지 교환(Message Passing)
- 메시지 교환은 객체들 사이에 정보를 교환할 수 있는 유일한 수단이다.
- 한 객체가 다른 객체의 함수를 부르는 과정을 메시지 교환(Message Passing)이라고 한다.

 

 

복합객체(Composite Object)
- 한 객체가 다른 객체들을 포함하고 있는 경우

복합객체

 

728x90
반응형

'Software Engineering' 카테고리의 다른 글

애자일 개발 기법  (0) 2019.04.17
Agile software development  (0) 2019.04.17
Software process  (0) 2019.04.17
Class  (0) 2019.04.17
소프트웨어공학  (0) 2019.04.17