[typescript] 다른 클래스의 멤버 메서드에 접근 제어자로 접근하기
TypeScript에서는 다른 클래스의 멤버 메서드에 접근하기 위해 public
, protected
, private
접근 제어자를 사용할 수 있습니다. 접근 제어자를 사용하여 클래스의 멤버를 보호하고 캡슐화할 수 있습니다.
public
접근 제어자
public
접근 제어자는 기본적으로 모든 멤버에 적용됩니다. 따라서 클래스 외부에서도 접근이 가능합니다.
class MyClass {
public myMethod() {
// 메서드 내용
}
}
class AnotherClass {
private myClassInstance: MyClass;
constructor() {
this.myClassInstance = new MyClass();
this.myClassInstance.myMethod(); // 다른 클래스 내부에서 public 메서드 호출
}
}
위의 예제에서 MyClass
의 myMethod
가 public
으로 선언되어 있기 때문에 AnotherClass
에서 인스턴스를 생성하고 해당 메서드에 접근할 수 있습니다.
protected
접근 제어자
protected
접근 제어자는 해당 클래스와 해당 클래스를 상속받은 하위 클래스에서만 접근이 가능합니다.
class MyClass {
protected myMethod() {
// 메서드 내용
}
}
class AnotherClass extends MyClass {
constructor() {
super();
this.myMethod(); // 상속받은 클래스에서 protected 메서드 호출
}
}
위의 예제에서 MyClass
의 myMethod
가 protected
로 선언되어 있기 때문에 AnotherClass
에서 상속을 받아 해당 메서드에 접근할 수 있습니다.
private
접근 제어자
private
접근 제어자는 해당 클래스 내부에서만 접근이 가능합니다.
class MyClass {
private myMethod() {
// 메서드 내용
}
}
class AnotherClass {
private myClassInstance: MyClass;
constructor() {
this.myClassInstance = new MyClass();
this.myClassInstance.myMethod(); // 오류 발생: private 메서드에 접근 불가
}
}
위의 예제에서 MyClass
의 myMethod
가 private
으로 선언되어 있기 때문에 AnotherClass
에서 해당 메서드에 접근할 수 없습니다.
접근 제어자를 사용하여 클래스의 멤버에 접근을 제어함으로써 코드를 보다 안전하고 관리하기 쉽게 만들 수 있습니다.
이러한 TypeScript의 접근 제어자를 통해 캡슐화된 코드의 안전성과 유지보수성을 향상시킬 수 있습니다.