멤버 변수를 직접 변경할 수 없도록 캡슐처럼 껍데기를 둘러싸는 과정. 캡슐 안에서 특정 로직에 따라 멤버 변수가 적절하게 변경되어야 프로그램이 안전할 수 있기 때문이다.
접근제한자를 통한 캡슐화로 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하다.
필드와 메서드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인한 객체의 손상을 방지하기 위함이다.
객체의 응집도와 독립성을 높임으로써 모듈화를 지향한다.
객체의 모듈화가 잘 이루어져있을경우 모듈단위의 재사용 용이
중복되는 코드 -> 모듈로 대체 -> 모듈 내부의 소스만 수정하는 것으로 수정사항 반영 가능 -> 간편한 유지보수
-> 변수,메서드,클래스에 대해 접근제어자를 사용함으로써 캡슐화 할 수 있다.
클래스, 멤버변수, 메소드, 생성자에 접근 제한자를 더하여 외부에서 아무나 접근할 수 없도록 한다. (private,protected,public)
생략가능하며 생략 시 자동으로 디폴트(default)로 지정된다.

https://reakwon.tistory.com/143
생소한 개념의 캡슐화