캡슐화
데이터와 데이터를 조작하는 연산을 하나로 묶는 것을 의미
다른말로 번들링(Bundling)이라고도 합니다.
인터페이스 간결, 추상화, 모듈화 향상, 내부 데이터의 보호, 모듈 독립성 향상의 효과가 있습니다.
기존에도 C언어에서 구조체나 공용체를 통해서 캡슐화를 시도했지만
객체지향 언어가 등장하면서 캡슐화가 완벽하게 지원됩니다.
추상화란?
복잡한 문제를 다루기 위해서 불필요한 부분들을 숨기고 중요한 부분만을 표현하는 것
또는 구체적인 사실들을 일반화시켜 기술한 것
공용체란?
구조체와 같이 여러 자료형을 멤버로 가지고 있지만
여러 멤버들이 메모리 공간을 공유하며 사용합니다.
가장 사이즈가 큰 멤버의 사이즈로 메모리를 할당하고 모든 멤버들이 해당 메모리 공간을 공유하며 사용합니다.
정보은닉
객체에 대한 구체적인 정보를 노출시키지 않도록하는 기법, 외부에서의 접근을 막는 기법
목적은 객체간의 결합도를 약화시켜 교체나 변경이 쉽도록 하는 것입니다.
객체지향 언어에서 추구하는 유연성(교체, 변경)을 정보은닉을 통해서 얻을 수 있습니다.
public : 외부에서 접근 가능
private : 외부에서 접근 불가
default : 동일 패키지로 묶인 클ㄹ스 내에서만 접근 가능
정리하자면 캡슐화는 데이터와 함수를 묶어주는 기법이고 정보은닉은 캡슐 속에 있는 데이터와 함수를
외부에 노출시키지 않는 기법입니다.
정보은닉, 캡슐화 추천 블로그
'전자공학 > 프로그래밍' 카테고리의 다른 글
객체지향(객체, 클래스, 인스턴스, 메소드, 필드) (0) | 2019.11.03 |
---|---|
UML(Unified Modeling Language)과 다이어그램 (0) | 2019.11.02 |
컴파일(Compile), 빌드(Build), 링커(Linker), 로더(Loader) (0) | 2019.10.19 |
화이트 박스 테스트 vs 블랙 박스 테스트 (0) | 2019.10.18 |
리눅스 VS 유닉스 (1) | 2019.04.28 |