Frontend/TypeScript(완)
[TS] TS연습하기9 (public, private, protected, static)
VictorMeredith
2023. 4. 12. 23:07
class ProtectedPractice {
protected x:number = 10;
static y:number = 50; //static 키워드는 부모class에 직접 부여됨(자식들도 못씀)
private static z:number = 100; //static은 다른 키워드랑 병합이 가능하다.
}
class NewUser extends ProtectedPractice{
public 변경():void{
//protected는 x 사용 가능하다
//private는 x 사용 불가능하다
this.x = 20
}
}
const newUSER = new NewUser()
newUSER.변경(); //protected라서 접근 가능
console.log(newUSER);
console.log(`부모는 static 사용 가능하다 : ${ProtectedPractice.y}`)
1. public :
클래스 멤버에 대한 접근을 제한하지 않습니다. 클래스의 인스턴스를 통해 해당 멤버에 액세스할 수 있으며, 클래스 외부에서도 액세스할 수 있습니다. TypeScript에서는 멤버에 접근 제어자를 지정하지 않으면 기본적으로 public으로 간주합니다.
2. private :
클래스 멤버가 해당 클래스 내에서만 액세스할 수 있음을 나타냅니다. 클래스의 인스턴스를 통해 해당 멤버에 액세스하려고 하면 오류가 발생합니다.
3. protected :
private과 유사하지만, 해당 클래스와 파생된 하위 클래스에서 액세스할 수 있습니다. 클래스 외부에서는 여전히 액세스할 수 없습니다.
4. static :
클래스의 인스턴스가 아닌 클래스 자체에 속한 멤버임을 나타냅니다. static 멤버는 클래스 이름을 통해 액세스할 수 있으며, 클래스의 인스턴스를 통해 액세스할 수 없습니다.