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의 타입은 열거형 자체의 제약보다 낮아야한다.
여기서 안된다는 것은 컴파일 에러가 나타나는게 아닌 좋은 사용법이 아니라는 뜻이다.
반응형