TypeScript의 private 제어자
private 제어자는 클래스 외부에서 속성과 메서드에 대한 접근을 차단해야 할 경우에 사용됩니다.
이 경우 하위 클래스에서도 해당 속성에 접근할 수 없습니다.
예제를 살펴보겠습니다. User 클래스에 비공개 속성 name을 만들어 보겠습니다.
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}
생성자에 속성 값을 전달하여 클래스의 객체를 생성하겠습니다.
let user: User = new User('john');
이제 클래스 외부에서 이 비공개 속성을 읽으려고 하면 오류가 발생합니다.
console.log(user.name); // 오류
클래스 외부에서 이 속성에 무언가를 쓰려는 시도도 오류를 일으킵니다.
user.name = 'eric'; // 오류
그러나 클래스 메서드 내부에서는 비공개 속성의 값을 읽고 변경할 수 있습니다.
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
public getName() {
return this.name; // 속성 읽기
}
public setName(name: string) {
this.name = name; // 속성에 새 값 쓰기
}
}
이름과 나이를 가지는 비공개 속성을 포함하는 User 클래스를 만드세요.
초기 값은 생성자를 통해 설정되도록 하세요.
여러분의 User 클래스에 해당 비공개 속성의 값을 얻을 수 있는 공개 메서드 getName과 getAge를 만드세요.
여러분의 User 클래스에 해당 비공개 속성의 값을 변경할 수 있는 공개 메서드 setName과 setAge를 만드세요.