캡슐화는 객체 지향 프로그래밍의 중요 개념중 하나이다. 캡슐화는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. 캡슐화는 쉽게 이야기 해서 속성과 기능을 하나로 묶고, 외부에서 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것이다.
객체의 데이터는 객체가 제공하는 기능인 메서드를 통해서 접근해야 한다.
데이터는 모두 숨기고, 기능은 꼭 필요한 기능만 노출하는 것이 좋은 캡슐화이다.
접근 제어자와 캡슐화를 통해 데이터를 안전하게 보호하는 것은 물론이고, 개발자 입장에서 해당 기능을 사용하는 복잡도도 낮출 수 있다.