下記「★質問ポイント★」の場所です。
typescript
1class Manager { 2 mem1: Member; // メンバへのアクセスは可能 3 mem2: Member; 4 mem3: Member; 5 constructor() { 6 this.mem1 = new Member("yama"); 7 this.mem2 = new Member("naga"); 8 this.mem1 = new Member("koku"); 9 } 10 allSing() { 11 mem1.sing(); 12 mem2.sing(); 13 mem3.sing(); 14 } 15} 16 17class Member { 18 name: string; 19 constructor(n: string) { 20 this.name = n; 21 } 22 /** みんな呼べる */ 23 greet() { 24 alert(`はい${this.name}`); 25 } 26 /** 27 ★質問ポイント★Managerからのみ呼び出されるようにしたい。Otherからは呼び出されたくない。 28 publicではみんな呼べてしまう 29 privateでは誰も呼べない 30 protectedでもManagerから呼べない 31 なんかうまい方法ない? 32 */ 33 sing() { 34 alert(`♪${this.name}`); 35 } 36} 37 38class Other { 39 hey() { 40 mngr = new Manager(); 41 mngr.allSing(); // できてほしい 42 mngr.mem1.greet(); // できてほしい 43 mngr.mem1.sing(); // ★ビルドエラーになってほしい 44 } 45}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。