Backend 언어/Kotlin

접근 범위와 접근 제한

민초부 2020. 10. 11. 17:47
반응형

접근 제한자에 대해 들어가기 전에 Scope에 대한 개념을 잡아야 함 

 

- Scope란? : 언어 차원에서 변수, 함수, 클래스와 같은 객체들을 서로 공유하여 사용할 수 있는 범위를 지정해두는 단위 
Ex) 패키지 내부에서 공유, 클래스 내부에서 공유, 함수 내부에서 공유 

  • Scope 규칙
    • 스코프 외부에서는 스코프 내부의 값은 참조연산자로만 접근이 가능하다. 
      Ex) customer.name 이렇게 name 값을 받는거 처럼 customer라는 참조연산자를 통해 접근
    • 동일 패키지 안에서는 사용 가능하다
    • 하위 Scope에서 상위 Scope의 값을 재정의 할 수 있다. 
      (val을 통해 재선언해줘서 사용)

- 접근 제한자 : Scope 외부에서 Scope 내부에 접근할 때 그 권한을 개발자가 제한하는 것 

  • 종류 : public/internal/private/protected
  • Package Scope 예시 
    • public : 어떠한 package에서도 접근 가능
    • internal : 같은 모듈 내에서만 접근 가능
    • private : 같은 파일 내에서만 접근 가능
  • Class Scope 예서
    • public : 어떠한 class에서도 접근 가능
    • private : class 내부에서만 접근 가능
    • protected : class 내부 및 상속 받은 클래스에서도 접근 가능 

 

반응형

'Backend 언어 > Kotlin' 카테고리의 다른 글

변수에 관하여  (0) 2020.10.17
Class에 관하여  (0) 2020.10.11
고차 함수  (0) 2020.10.11
프로젝트 구조  (0) 2020.10.11
Kotlin 시작  (0) 2020.07.25