Programing Langauge/swift

접근 제한자

Hamp 2024. 8. 25. 20:20
반응형

 

🔒 접근제한자란?

접근제한자는 데이터를 캡슐화의 특징 중 정보 은닉을 담당한다.

 

종류

  외부모듈에서  접근 상속 override  공개 범위
open O O O class멤버에만 사용, 가장 개방적인 범위
public O O X override를 제외하고 open과 동일
internal X Δ(내부 모듈) Δ(내부 모듈) 외부 모듈에서 접근을 제한
fileprivate X Δ(같은 파일) Δ(같은 파일) 같은 파일(.swift) 내에서만 접근이 가능한 접근 제한
private X X X 같은 스코프 안에서만 가능, 같은 파일안의
extension에서도 접근 가능

 

은닉 정도

(제약 낮음) open < public < internal < fileprivate < private (제약 높음)

특징

1) 모든 타입에 적용되는 접근지정자 규칙은 상위 요소보다 하위 요소 가 더 높은 접근수준을 가질 수 없다.

 

2) 예를 들어 private으로 선언된 클래스에서 public property나 method를 가질 수 없다

 

3) 매개변수나 반환값은 함수의 접근 제한자보다 같거나 높아야한다.

 

4) 열거형의 rawValue의 타입은 열거형 자체의 제약보다 낮아야한다.

 

 

 

여기서 안된다는 것은 컴파일 에러가 나타나는게 아닌 좋은 사용법이 아니라는 뜻이다.

반응형