타입스크립트 private 접근 제한자 예제
타입스크립트에서 `private` 접근 제한자는 클래스 내부에서만 사용할 수 있도록, 프로퍼티( Property )나 메서드( Method )의 접근 범위를 제한할 때 사용한다.
`private`으로 선언된 멤버는 해당 멤버가 정의된 클래스의 내부에서는 접근할 수 있지만, 클래스 외부에서 직접 접근할 수 없다.
일반적인 `private` 멤버는 상속받은 자식 클래스 또한 직접 접근할 수 없다.
접근 제한은
클래스 내부의 데이터를 외부 코드로부터 보호하고,
객체의 상태가 임의로 변경되는 것을 금지한다.
외부에서 값의 조회나 변경이 필요한 경우에는 클래스가 제공하는 공개 메서드나 접근자 등을 통해 처리하도록 한다.
`private` 접근제한자는 클래스의 내부 구현을 감추고 외부에 필요한 기능만 제공하는 캡슐화를 표현하는 데 사용된다.
⊙
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}⊙
class BankAccount {
balance: number = 10000;
}
const account = new BankAccount();
account.balance = -100000;⊙
class User {
private password: string;
constructor(password: string) {
this.password = password;
}
checkPassword(input: string): boolean {
return this.password === input;
}
}
const user = new User("1234");
console.log(user.checkPassword("1234"));⊙
class User {
private password: string;
constructor(password: string) {
this.password = password;
}
checkPassword(input: string): boolean {
return this.password === input;
}
}
const user = new User("1234");
console.log(user.checkPassword("1234"));
/* Property 'name' is private and only accessible within class 'User'. */⊙
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
introduce(): void {
console.log(`안녕하세요. 저는 ${this.name}입니다.`);
}
}
const user = new User("민수");
user.introduce();
댓글
댓글 쓰기