외부에 공개할 것과 공개하지 않을 것을 구분지음.
1) 캡슐화의 장점
- 정보은닉 - 숨기고 싶은 자료는 숨길 수 있다.
- 보안 - 멤버변수에 변화를 가하려면 무조건 퍼블릭 멤버함수를 통해서만 가능하도록 제한할 수 있다.
- 사용 편의성 - 사용자가 알아야될 부분만 노출시킴으로써 사용성 증가.
2) 접근 제한자
public
: 외부에서 참조할 수 있다.
private
: 클래스 내부에서만 참조할 수 있다. 자식 클래스에서도 접근 불가.
protected
: 클래스 내부와 해당 클래스를 상속받은 클래스에서도 사용할 수 있다.
접근 제한자는 타입스크립트에서 제공되는 것이다. (따라서 런타임에서는 위배하더라도 에러가 나지 않는다.)

3) 코드 예시
3-1) public과 private
대표적인 예시가
getter
, setter
외부에서 멤버변수를 직접접근 할 수 없고, 변형을 가할 수 있는 함수를 만들어서 제공함으로써 제한된 행위로만 수정을 가할 수 있도록 하여 객체의 멤버변수 값이 이상하게 변조되는 것을 방지한다.
getter, setter3-2) private과 protected
private
: 오로지 해당 클래스에서만 사용할 것.
protected
: 외부에서는 접근할 수 없지만 이 클래스를 상속한 클래스에서는 접근할 수 있다.
상속
을 알고 보면 더 좋음.