TypeScript의 private 제어자

private 제어자는 클래스 외부에서 속성과 메서드에 대한 접근을 차단해야 할 경우에 사용됩니다. 이 경우 하위 클래스에서도 해당 속성에 접근할 수 없습니다.

예제를 살펴보겠습니다. User 클래스에 비공개 속성 name을 만들어 보겠습니다.

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

생성자에 속성 값을 전달하여 클래스의 객체를 생성하겠습니다.

typescriptlet user: User = new User('john');

이제 클래스 외부에서 이 비공개 속성을 읽으려고 하면 오류가 발생합니다.

typescriptconsole.log(user.name); // 오류

클래스 외부에서 이 속성에 무언가를 쓰려는 시도도 오류를 일으킵니다.

typescriptuser.name = 'eric'; // 오류

그러나 클래스 메서드 내부에서는 비공개 속성의 값을 읽고 변경할 수 있습니다.

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public getName() {
    return this.name; // 속성 읽기
  }
  
  public setName(name: string) {
    this.name = name; // 속성에 새 값 쓰기
  }
}
Задание 1

이름과 나이를 가지는 비공개 속성을 포함하는 User 클래스를 만드세요. 초기 값은 생성자를 통해 설정되도록 하세요.

Задание 2

여러분의 User 클래스에 해당 비공개 속성의 값을 얻을 수 있는 공개 메서드 getName과 getAge를 만드세요.

Задание 3

여러분의 User 클래스에 해당 비공개 속성의 값을 변경할 수 있는 공개 메서드 setName과 setAge를 만드세요.