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 |
접근 제어
모듈은 코드 배포(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
: 클래스(상속 가능) 연산 타입 프로퍼티
{ get }
: 읽기만 가능
댓글