본문 바로가기

Kotlin

Kotlin - 액세스 한정자 (Visibility modifiers) - public, protected, internal, private

클래스, 오브젝트, 인터페이스, 생성사, 함수, 속성과, 속성의 세터(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