[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 메서드 호출
  }
}

위의 예제에서 MyClassmyMethodpublic으로 선언되어 있기 때문에 AnotherClass에서 인스턴스를 생성하고 해당 메서드에 접근할 수 있습니다.

protected 접근 제어자

protected 접근 제어자는 해당 클래스와 해당 클래스를 상속받은 하위 클래스에서만 접근이 가능합니다.

class MyClass {
  protected myMethod() {
    // 메서드 내용
  }
}

class AnotherClass extends MyClass {
  constructor() {
    super();
    this.myMethod(); // 상속받은 클래스에서 protected 메서드 호출
  }
}

위의 예제에서 MyClassmyMethodprotected로 선언되어 있기 때문에 AnotherClass에서 상속을 받아 해당 메서드에 접근할 수 있습니다.

private 접근 제어자

private 접근 제어자는 해당 클래스 내부에서만 접근이 가능합니다.

class MyClass {
  private myMethod() {
    // 메서드 내용
  }
}

class AnotherClass {
  private myClassInstance: MyClass;

  constructor() {
    this.myClassInstance = new MyClass();
    this.myClassInstance.myMethod(); // 오류 발생: private 메서드에 접근 불가
  }
}

위의 예제에서 MyClassmyMethodprivate으로 선언되어 있기 때문에 AnotherClass에서 해당 메서드에 접근할 수 없습니다.

접근 제어자를 사용하여 클래스의 멤버에 접근을 제어함으로써 코드를 보다 안전하고 관리하기 쉽게 만들 수 있습니다.

이러한 TypeScript의 접근 제어자를 통해 캡슐화된 코드의 안전성과 유지보수성을 향상시킬 수 있습니다.