접근 제한자

2024. 8. 25. 20:20·Programing Langauge/swift
반응형

 

🔒 접근제한자란?

접근제한자는 데이터를 캡슐화의 특징 중 정보 은닉을 담당한다.

 

종류

  외부모듈에서  접근 상속 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의 타입은 열거형 자체의 제약보다 낮아야한다.

 

 

 

여기서 안된다는 것은 컴파일 에러가 나타나는게 아닌 좋은 사용법이 아니라는 뜻이다.

반응형

'Programing Langauge > 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
'Programing Langauge/swift' 카테고리의 다른 글
  • 디스패치 학습하기 (2) [ Reference Type Dispatch, final ]
  • 디스패치 학습하기 (1) [ 정의, 종류, vtable, witness table ]
  • property 학습하기 (4) [ Property Observer ]
  • property 학습하기 (3) [ Type Property ]
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (329)
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (41)
        • swift (34)
        • python (6)
        • Kotlin (1)
      • iOS (134)
        • UIKit (37)
        • Combine (1)
        • SwiftUI (34)
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (21)
        • 어노테이션 (6)
        • 튜토리얼 (14)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (11)
        • 이론 (10)
        • MCP (1)
        • LangGraph (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Swift
    dispatch
    property
    dp
    Spring
    CS
    dfs
    protocol
    UIKit
    Tuist
    concurrency
    lifecycle
    boostcamp
    IOS
    투포인터
    프로그래머스
    백준
    AVFoundation
    GIT
    SwiftUI
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
접근 제한자
상단으로

티스토리툴바