[Snow-ball]프로그래밍(컴퓨터)/C, C++
[C++] 객체지향 프로그래밍의 주요 개념들
Snow-ball
2020. 10. 12. 14:35
반응형
객체(object)란?
* 소프트웨어 시스템 안의 어떠한 대상을 표현한 것
- 정해진 처리를 수행함 > 행위, 메소드, 멤버함수
- 처리 과정에 따라 내부상태가 변화할 수 있음 > 속성, 데이터 멤버
- 다른 객체와 상호작용 할 수 있음 > 메시지 전달(멤버함수 호출)
클래스(class)란?
* 객체의 설계도
* 객체가 포함할 속성에 대한 명세와 메소드의 정의를 포함함.
캡슐화(encapsulation)란?
* 객체 내부의 상세한 구현부분과 외부사용자의 관점을 분리함.
* 내부속성등 구현에 대한 부분은 공개하지 않으며(정보은닉), 객체 외부에서는 공개된 인터페이스를 통해 객체를 사용할 수 있음 > 정보은닉 : 객체 내부의 데이터는 감춰져 있어 객체 외부의 사용자가 직접 액세스 할 수 없으며, 공개된 객체의 함수를 통해서만 값을 사용하거나 변화시킬 수 있다.
캡슐화의 장점
- 소프트웨어의 유지보수가 용이함 : 프로그램이 다른 부분에 영향을 미치지않고 객체 내부 구현 방법을 수정할 수 있음
- 재사용이 용이함 : 잘 설계된 캡슐화된 객체는 다른 응용에서도 재사용할 수 있어 소프트웨어 개발 비용을 줄일수 있음
상속이란?
반응형