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を追加してください。