TypeScript에서 protected
접근 제어자는 객체의 내부 상태를 변경할 때 유용하게 사용됩니다. 이 접근 제어자는 해당 클래스에서 파생된 클래스에서만 접근할 수 있도록 제한하는 역할을 합니다. 이 포스트에서는 protected
접근 제어자가 객체의 상태를 어떻게 변경하는지 살펴보겠습니다.
protected
접근 제어자란?
protected
접근 제어자는 해당 멤버를 포함하는 클래스와 파생된 클래스로만 접근할 수 있도록 제한하는 역할을 합니다. 이는 객체의 내부 상태를 보호하면서 해당 상태에 대한 변경을 허용함으로써 캡슐화를 강화하는 데 도움이 됩니다.
객체의 상태 변경 예시
다음은 protected
접근 제어자를 사용하여 객체의 상태를 변경하는 간단한 예시 코드입니다.
class Animal {
protected sound: string;
constructor(sound: string) {
this.sound = sound;
}
makeSound() {
console.log(this.sound);
}
}
class Dog extends Animal {
constructor() {
super("Woof");
}
makeLoudSound() {
this.sound = this.sound.toUpperCase(); // 여기서 protected 속성에 접근 가능
this.makeSound();
}
}
const dog = new Dog();
dog.makeSound(); // "Woof"를 출력
dog.makeLoudSound(); // "WOOF"를 출력
위의 예시에서 Animal
클래스의 sound
속성은 protected
로 선언되어 있습니다. 따라서 Dog
클래스의 makeLoudSound
메서드 내에서 sound
속성에 접근하여 값을 변경할 수 있습니다.
왜 protected
를 사용해야 하는가?
protected
접근 제어자를 사용함으로써 객체의 내부 상태를 안전하게 유지할 수 있습니다. 이것은 해당 상태에 대한 변경을 허용함으로써 유연성을 제공하면서도 외부에서의 접근을 제한하는 데 도움이 됩니다.
또한, protected
를 사용하면 코드를 더 쉽게 이해하고 유지보수할 수 있습니다. 해당 멤버의 사용 범위가 명확하게 정의되므로, 코드의 의도가 명확해지고 실수를 줄일 수 있습니다.
결론
protected
접근 제어자는 TypeScript에서 객체의 내부 상태를 캡슐화하고 보호하는 데 유용한 도구입니다. 이를 통해 코드의 안전성과 가독성을 높일 수 있으며, 파생 클래스에서만 접근이 가능하도록 제한함으로써 객체의 상태를 안전하게 변경할 수 있습니다.
protected
를 사용하여 객체의 상태를 유연하게 변경하고, 동시에 안전하게 유지하십시오.
많은 프로그래머들이 자신의 블로그나 TypeScript 공식 문서에서 해당 내용을 자세히 다루고 있습니다.
이 내용은 TypeScript 핸드북의 접근 제어자 부분에서도 확인할 수 있습니다.