🔒 접근제한자란?
접근제한자는 데이터를 캡슐화의 특징 중 정보 은닉을 담당한다.
종류
외부모듈에서 접근 | 상속 | 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의 타입은 열거형 자체의 제약보다 낮아야한다.
여기서 안된다는 것은 컴파일 에러가 나타나는게 아닌 좋은 사용법이 아니라는 뜻이다.
'프로그래밍언어 > swift' 카테고리의 다른 글
디스패치 학습하기 (2) [ Reference Type Dispatch, final ] (0) | 2024.08.25 |
---|---|
디스패치 학습하기 (1) [ 정의, 종류, vtable, witness table ] (0) | 2024.08.25 |
property 학습하기 (4) [ Property Observer ] (0) | 2024.08.25 |
property 학습하기 (3) [ Type Property ] (0) | 2024.08.25 |
property 학습하기 (2) [ computed Property ] (0) | 2024.08.25 |