기본적인 가시성 변경자와 접근의 제어
- 가시성 변경자는 클래스 외부에서의 접근을 제어한다.
- 클래스의 구현에 대한 접근을 제한함.
- 외부 코드가 클래스 내부 구현에 의존하지 않음.
- public, protected, private 변경자가 존재하며,
- 기본은 public
- 아무런 변경자가 없으면 기본 선언은
공개
- 자바의 기본 가시성 패키지 전용은 코틀린에 존재하지 않음
- 패키지를 네임스페이스 위한 용도로만 사용
- 패키지에 가시성 제어 적용 X
코틀린의 internal 가시성 변경자
- 패키지 전용 가시성에 대한 대안
- 코틀린은
internal
가시성 변경자 도입- internal
모듈 내부에서만 볼 수 있다
- 의 의미이다.
- internal
- 코틀린은
- 모듈은 한 번에 한꺼번에 컴파일되는 코틀린 파일들을 의미
- 이클립스 인텔리제이 메이븐 등의 프로젝트가 모듈이 될 수 있다.
모듈 내부 가시성은 모듈의 구현에 대해 진정한 캡슐화 제공 하는 장점이 있음
internal open class Example {
// 이 클래스는 같은 모듈 안에서만 볼 수 있습니다.
}
최상위 선언에 대한 private 가시성 변경자
- 최상위 선언에 대해 private 을 허용한다.
- 클래스, 함수, 프로퍼티 등이 포함된다.
private fun exampleFunction() {
// 이 함수는 같은 파일 안에서만 볼 수 있습니다.
}
코틀린의 protected 가시성 변경자
- 코틀린의 protected 가시성 변경자는 오직 어떤 클래스나 해당하는 클래스를 상속한 클래스 안에서만 보인다.
- 클래스를 확장한 함수는 해당 클래스의 private 이나 protected 멤버에 접근할 수 없다.
open class Example { protected fun exampleFunction() { // 이 함수는 이 클래스나 이 클래스를 상속한 클래스 안에서만 볼 수 있습니다. } }
파일단위의 캡슐화가 가능해졌다는 점
internal 변경자로 모듈 내부에서만 접근이 가능하도록 모듈의 독립성을 유지할 수 있다는 점이 좋다고 생각한다.
Uploaded by N2T
'코틀린 > 코틀린인액션' 카테고리의 다른 글
[KOTLIN] try catch finally (0) | 2024.02.08 |
---|---|
[코틀린인액션] 상속 제어 변경자 (0) | 2023.12.17 |
[코틀린인액션] 코틀린과 자바의 내부 클래스와 중첩 클래스 (0) | 2023.12.17 |
[코틀린인액션] 3중 따옴표 문자열 (0) | 2023.12.09 |
[코틀린인액션] 로컬 함수를 사용하여 코드 중복 제거 (0) | 2023.12.09 |