클래스, 오브젝트, 인터페이스, 생성사, 함수, 속성과, 속성의 세터(setter, getter는 프로퍼티와 같은 수준의 액세스 한정자를 갖는다.) 들은 액세스 한정자(접근 제한자, visibility modifier)를 가질 수 있다.
private, protected, internal, public 이 있으며, 기본은 public 이다.
Packages
top-level (패키지에 바로 선언되는) 함수, 속성, 클래스 오브젝트, 인터페이스를 대상으로
- 아무것도 작성하지 않으면 기본으로 public 이 적용되며, 어느곳에서나 접근이 가능하다.
- private 으로 선언하면같은 파일 내에서만 접근이 가능하다.
- internal 로 선언하면 같은 모듈 내에서만 접근이 가능하다.
- protected는 선언이 불가하다.
Class members
- private : 동일 클래스에서만 접근이 가능하다.
- protected : 동일 클래스와 상속받은 클래스에서 접근이 가능하다.
- internal : 같은 모듈에 있으면 접근이 가능하다.
- public : 아무곳에서나 접근이 가능하다.
지역변수, 함수, 클래스는 액세스한정자를 갖지 못한다.
생성자는 기본적을 public 이며 아래와 같은 방식으로 제한자를 작성한다.
class C private constructor(a: Int) { ... }
Modules
모듈은 IntelliJ IDEA module, 메이븐 프로젝트와 같이 한번에 같이 컴파일이 되는 코틀린 파일들의 모음을 말하며, internal 한정자의 경우 같은 모듈 내에서만 접근이 가능하다.
반응형
'Kotlin' 카테고리의 다른 글
Kotlin - 데이터 클래스(Data class) (0) | 2024.02.01 |
---|---|
Kotlin - 확장(Extensions) (2) | 2024.01.31 |
Kotlin - Functional (SAM) interfaces (0) | 2024.01.24 |
Kotlin - 인터페이스 (Interface) (0) | 2024.01.24 |
Kotlin - 속성 (Properties) (0) | 2024.01.20 |