Swift/Swift 기본문법

Swift 기본 문법 - 14. 접근제어

728x90

14. 접근제어 

아마 자바의 public private 처럼 접근을 제어하는 기능이 swift에도 존재를 하는 것 같다.

파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능이라고 한다.

 

접근제어를 사용하는 이유는

객체지향에선 캡슐화, 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안 되는 코드가 있기 때문이다.

전체 코드가 노출될 가능성이 있을 때 접근제어를 사용한다고 한다.

 

14.2 접근수준

클래스, 구조체, 열거형, 프로퍼티, 메서드, 이니셜라이저, 스브스크립트 각각에도 접근수준을 지정할 수 있습니다.

open, public, internal, fileprivate, private 다섯 가지가 있습니다.

 

14.2.1  공개접근수준 - public

public키워드로 지정된 요소는 어디서든 쓰일 수 있습니다.

 

14.2.2 개방 접근수중 - open

클래스와 클래스의 멤버에서만 사용 할 수 있습니다.

클래스를 개방 접근 수준으로 명시하는 것은 그 클래스를 다른 모듈에서도 부모클래스로 사용하겠다는 목적으로 클래스를 설계하였다는 것입니다.

다른 모듈에서 같은 부모 클래스를 사용하게끔 작성 할 일이 있을까?

프레임워크에서는 있겠지만 실제로는 사용하지 않을 것 같다.

 

14.2.3 내부 접근수준 - internal

internal 키워드 지정하는 내부 접근수준은 기본적으로 모든 요소에 암묵적으로 지정되는 기본 접근 수준입니다.

모듈 어디에서든 쓰일 수 있지만, 모듈을 가져다 쓰는 외부 모듈에서는 접근 할 수 없습니다.

 

14.2.4 파일외부 비공개 접근 수준 -fileprivate

소스파일 내부에서만 사용 할 수 있습니다. 값이 변경되거나 함수를 호출하면 부작용이 생길 수 있는 경우에 사용하면 좋습니다.

 

14.2.5 비공개 접근수준 - private

가장 한정적인 범위입니다.

기능을 정의하고 구현한 범위 내에서만 사용 할 수 있습니다. 소스파일 안에 구현한 다른타입이나 기능에서도 사용 할 수 없습니다.

 

개인적으로 private만 자주 사용하는 것 같다.

반응형