일반적으로 캡슐화는 어떤 하나를 다른 것에 포함시킴으로써, 포함된 것이 외부에서 보이지 않도록 하는 것이다. 반대로, 캡슐 해제는 이를 제거하거나, 또는 캡슐화되기 이전의 것을 보이게 하는 것이다.
- 객체지향 프로그래밍에서, 캡슐화는 객체와 기능, 즉 메쏘드와 데이터 등을 위해 필요한 모든 자원을 프로그램 객체 내에 포함시키는 것이다. 그 객체는 자신의 인터페이스들을 외부에 널리 알림으로써, 다른 객체들은 그 객체가 그 일을 어떻게 수행할 지에 대해 전혀 알지 못하더라도, 단지 인터페이스만을 통해 그 객체를 사용할 수 있다. 이는 마치 "네가 그것을 어떻게 하는지는 말하지 말고, 그저 나를 위해 그것을 해줘"라는 식으로, 사용자에게는 어떤 일을 수행하는지의 기능에 대한 인터페이스만을 제공하며, 내부에서 일어나는 일은 숨긴다. 각각의 객체는 하나의 독립적인 원자라고 생각할 수 있으며, 객체 인터페이스는 전역 메쏘드들과 인스턴트 데이터로 이루어져있다.
- 통신에서의 캡슐화는, 다른 구조 속에 포함된 하나의 데이터 구조로서, 일정시간동안 첫 번째 데이터 구조가 감추어진다. 예를 들어, 하나의 TCP/IP 형식의 데이터 패킷은 다른 종류의 전송데이터 단위인 ATM프레임 속에 캡슐화될 수 있는데, ATM 프레임이 송수신 되는 상황 속에서, 캡슐화된 패킷은 단지 ATM 데이터들 사이의 비트 스트림으로 간주될 뿐이다.
|