본문 바로가기
안드로이드 프로그래밍/문법정리

[kotlin] 접근 제한자(Visibility Modifiers)

by 1chanhue1 2023. 1. 27.

접근 제한자

접근 제한자는 해당 패키지나 클래스에 외부에서 접근하려 할 때, 접근을 제어할 수 있는 개념입니다.

접근제한자는 패키지와 클래스에 접근할 때의 두 경우로 나뉘게 됩니다.

- public, internal, private, protected 

- 변수, 함수 , 클래스 선언 시 맨 앞에 적어준다
- ex) private val number : Int =10


범위(Scope)
- 변수(변수 자체가 Scope), 함수 ,클래스 
- 규칙
 - 같은 스코프 안에서는 공유 가능  
 - 하위 스코프에서는 상위 스코프 멤버를 사용 및 재정의(할당) 할 수 있다.
     - 상위 스코프에서는 하위 스코프에 있는 맴버를 사용 및 재정의 할 수 없다.
 
프로젝트
 -> 모듈들로 구성
모듈
 -> 라이브러리로 구성
라이브러리
-> 파일, 폴더로 구성 


- 패키지 스코프 
 - public(기본값) -> 어떤 패키지에서도 접근 가능
 - internal -> 같은 모듈 내에서만 접근 가능
 - private -> 같은 파일 내에서만 접근 가능
 - protected -> 사용 안함

 - 클래스 스코프 
  - public(기본값) -> 클래스 외부에서 접근 가능
  - private -> 클래스 내부에서만 사용 가능
  - protected -> 클래스 자신과 상속받은 클래스에서 접근 가능
  - internal -> 사용 안함