Class scope — 클래스 컴포넌트의 유효 범위

Class scope — 클래스 컴포넌트의 유효 범위

객체지향을 쓰다 보면 클래스 안에서 선언한 필드나 메서드를 어디에서 참조할 수 있는지가 중요해져요. 클래스 컴포넌트 식별자가 유효한 위치를 정리할게요.

출처: Class scope - Free Pascal Reference

본문

클래스의 컴포넌트 목록에 있는 항목, 즉 컴포넌트 식별자는 다음 네 곳에서 유효해요:

  1. 선언된 지점부터 클래스 정의가 끝날 때까지
  2. 이 클래스의 **모든 파생 타입(descendent types)**에서 — 단, 그 컴포넌트가 클래스 선언의 private 부분에 있다면 예외예요.
  3. 이 클래스와 파생 클래스의 모든 메서드 선언 블록에서
  4. 해당 클래스 정의의 변수를 다루는 With 문장 안에서

여기서 한 가지 기억할 점은 메서드 지정자(method designator)도 식별자로 취급된다는 거예요. 그래서 위 유효 범위 규칙이 메서드 이름에도 그대로 적용돼요.

더 알아보기

  • Block scope — 블록 안에서의 변수 유효 범위
  • Record scope — 레코드 필드 식별자의 유효 범위
  • Unit scope — 유닛 인터페이스 식별자의 유효 범위