가시성
가시성 (Visibility)
객체에는 세 가지 가시성 지정자(visibility specifier)가 있어요. private, protected, public이에요. 가시성 지정자를 적지 않으면 public으로 간주됩니다. 메서드와 필드 모두 private 섹션에 넣어 프로그래머에게 숨길 수 있죠.
출처: Visibility
본문
정확한 가시성 규칙은 다음과 같아요.
- Private — private 블록에 있는 모든 필드와 메서드는 객체 정의를 담고 있는 모듈(유닛 또는 프로그램) 안에서만 접근할 수 있어요. 객체의 메서드 안에서도, 바깥(예: 다른 객체의 메서드, 전역 함수)에서도 접근 가능합니다.
- Protected — Private과 같지만, Protected 섹션의 멤버는 다른 모듈에 구현되어 있어도 자손 타입에게도 접근 가능하다는 점이 달라요.
- Public — public 필드와 메서드는 어디서든 항상 접근할 수 있어요. public 섹션의 필드와 메서드는 평범한 레코드 타입의 일부처럼 동작합니다.