접근제한자 - 캡슐화 기초

Tags
encapsulation
부가 설명
public, private, protected로 캡슐화
비고
 
외부에 공개할 것과 공개하지 않을 것을 구분지음.

1) 캡슐화의 장점

  • 정보은닉 - 숨기고 싶은 자료는 숨길 수 있다.
  • 보안 - 멤버변수에 변화를 가하려면 무조건 퍼블릭 멤버함수를 통해서만 가능하도록 제한할 수 있다.
  • 사용 편의성 - 사용자가 알아야될 부분만 노출시킴으로써 사용성 증가.

2) 접근 제한자

  • public : 외부에서 참조할 수 있다.
  • private : 클래스 내부에서만 참조할 수 있다. 자식 클래스에서도 접근 불가.
  • protected : 클래스 내부와 해당 클래스를 상속받은 클래스에서도 사용할 수 있다.
💡
접근 제한자는 타입스크립트에서 제공되는 것이다. (따라서 런타임에서는 위배하더라도 에러가 나지 않는다.)
notion image

3) 코드 예시

3-1) public과 private

대표적인 예시가 getter, setter
외부에서 멤버변수를 직접접근 할 수 없고, 변형을 가할 수 있는 함수를 만들어서 제공함으로써 제한된 행위로만 수정을 가할 수 있도록 하여 객체의 멤버변수 값이 이상하게 변조되는 것을 방지한다.
getter, setter
 

3-2) private과 protected

  • private : 오로지 해당 클래스에서만 사용할 것.
  • protected : 외부에서는 접근할 수 없지만 이 클래스를 상속한 클래스에서는 접근할 수 있다.
상속을 알고 보면 더 좋음.
클래스 상속