가시성 2

[Kotlin] 인터페이스의 프로퍼티 & 접근자에서 backing field 에 접근, 접근자의 가시성

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 인터페이스에 선언된 프로퍼티 코틀린에서는 인터페이스에 추상 프로퍼티 선언을 넣을 수 있다. interface User { val nickname: String } `User` 인터페이스를 구현하는 클래스는 `nickname` 의 값을 얻을 수 있는 방법을 제공해야 한다. 인터페이스에 있는 프로퍼티 선언에는 어떠한 상태를 포함할 수 없다. 즉, backing field 에 대한 정보가 들어있지 않다. 프로퍼티 선언을 가진 인터페이스 구현 인터페이스를 구현하는 방법을 코드로 보자 class PrivateUser(override val nickname: String) : User class Su..

Kotlin 2024.01.09

[Kotlin] 가시성 변경자 public, internal, protected, private

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 코틀린에서는 기본적으로 public (visibility modifier 가시성 변경자) visibility modifier(가시성 변경자)는 클래스 외부 접근을 제어한다. 코틀린에서도 자바와 같은 가시성 변경자를 가진다. `public`, `protected`, `private` 변경자가 모두 있다. 하지만 코틀린의 기본 가시성은 `public` 이다. 코틀린에서는 최상위 선언에 대해 `private` 을 허용한다. 클래스, 함수, 프로퍼티 등이 최상위 선언으로 가능하다. `private` 최상위 선언은 그 선언이 들어있는 파일 내부에서만 사용 가능하다. 참고로 자바에서는 클래스를 `pr..

Kotlin 2024.01.05