Dev/Swift

Swift: 접근 제어(access control, access modifier)

두넌 2023. 5. 15.

DAY 16

접근 제어(access control, access modifier)

 

access modifier


접근 속성(접근 수정자, 액세스 수정자, 액세스 지정자)는 클래스, 메서드, 멤버의 접근 가능성을 설정하는 객체 지향 언어의 키워드

구성 요소를 캡슐화 하는 데 사용한다

Keyword C# C++ Java
private class class and/or friend classes class
protected derived classes derived classes and/or friend classes derived classes and/or within same package
package - - within its package
internal same assembly - -
public everybody everybody everybody

Access_modifiers

 

접근 제어


모듈은 코드 배포(code distribution)의 단일 유닛

앱, Framework(UiKit 등), 외부 라이브러리

 

open, public

open, public 접근을 통해 모듈의 모든 소스 파일 내에서 사용할 수 있으며, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있다

일반적으로 Framework에 공용 인터페이스를 지정할 때는 open 또는 public 접근을 사용한다

open 접근은 클래스 및 클래스 멤버에만 적용

 

internal

internal 접근은 해당 모듈의 모든 소스 파일 내에서 사용되지만, 해당 모듈 외부의 소스파일에서는 사용되지 않도록 한다

일반적으로 App이나 Framework의 내부 구조를 정의할 때 internal 접근을 사용한다

 

fileprivate, private

fileprivate 접근은 해당 소스 파일 내에서만 사용가능

private 접근은 블록과 동일한 파일에 있는 해당 선언의 extension으로 제한한다

 

open - public - internal - fileprivate - private

 

접근 제어 예


open class var blue: UIColor { get }

open : 모듈 외부까지(클래스에만 사용) 접근 가능

class : 클래스(상속 가능) 연산 타입 프로퍼티

Type Property

{ get } : 읽기만 가능

댓글