https://www.geeksforgeeks.org/encapsulation-in-java/

캡슐화

 

이터와 데이터를 조작하는 연산을 하나로 묶는 것을 의미

 

다른말로 번들링(Bundling)이라고도 합니다.

 

인터페이스 간결, 추상화, 모듈화 향상, 내부 데이터의 보호, 모듈 독립성 향상의 효과가 있습니다.

 

기존에도 C언어에서 구조체나 공용체를 통해서 캡슐화를 시도했지만

 

객체지향 언어가 등장하면서 캡슐화가 완벽하게 지원됩니다.

 

 

추상화란?

 

복잡한 문제를 다루기 위해서 불필요한 부분들을 숨기고 중요한 부분만을 표현하는 것

 

또는 구체적인 사실들을 일반화시켜 기술한 것

 

공용체란?

 

구조체와 같이 여러 자료형을 멤버로 가지고 있지만

 

여러 멤버들이 메모리 공간을 공유하며 사용합니다.

 

가장 사이즈가 큰 멤버의 사이즈로 메모리를 할당하고 모든 멤버들이 해당 메모리 공간을 공유하며 사용합니다.

 

 

정보은닉

 

객체에 대한 구체적인 정보를 노출시키지 않도록하는 기법, 외부에서의 접근을 막는 기법

 

목적은 객체간의 결합도를 약화시켜 교체나 변경이 쉽도록 하는 것입니다.

 

객체지향 언어에서 추구하는 유연성(교체, 변경)을 정보은닉을 통해서 얻을 수 있습니다.

 

public : 외부에서 접근 가능

private : 외부에서 접근 불가

default : 동일 패키지로 묶인 클ㄹ스 내에서만 접근 가능

 

 

정리하자면 캡슐화는 데이터와 함수를 묶어주는 기법이고 정보은닉은 캡슐 속에 있는 데이터와 함수를

 

외부에 노출시키지 않는 기법입니다.

 

 

 

정보은닉, 캡슐화 추천 블로그

 

객체지향의 올바른 이해 : 5. 정보 은닉(information hiding)

우리가 어떻게 해서 유연성을 확보할 수 있었는가? 그것은 추상화(Abstraction)에서부터 시작되었다. 추상화를 통해 우리는 여러 요구사항들 중에서 공통점을 찾고, 이 공통점에서 목표한 것과 관련 없는 것들을..

effectiveprogramming.tistory.com

 

 

Information Hiding

소프트웨어 설계 시에 고려해야 할 기본 원리 중 가장 중요한 원리가 무엇이냐고 물어 본다면 주저 없이 ‘정보 은닉(Information Hiding)’이라고 대답할 것이다. 정보 은닉(또는 정보 은폐라고도 한다)은 1972년 Davis Parnas가 발표한 “On the Criteria To Be Used in Decomposing Systems Into

egloos.zum.com

 

+ Recent posts