Kotlin/포스팅

코틀린 멤버 가시성

짜집퍼박사(짜박) 2023. 12. 29. 23:41

코틀린에서는 멤버(프로퍼티, 메서드 등)에 대한 가시성을 제어하기 위해 다양한 가시성 수준(Visibility Modifiers)을 제공합니다. 이러한 가시성 수준을 사용하여 클래스 외부에서 접근할 수 있는 범위를 제한할 수 있습니다.

가시성 수준에는 다음과 같은 네 가지가 있습니다.

 

1. public (기본 가시성)

- 기본적으로 모든 선언(클래스, 인터페이스, 함수, 프로퍼티 등)은 public 가시성을 가집니다.
- public 멤버는 어디서나 접근할 수 있습니다.

class Example {
    val publicProperty: Int = 42
    fun publicMethod() {
        println("This is a public method")
    }
}

 

2. internal

- internal 가시성은 같은 모듈 내에서만 접근할 수 있습니다.
- 모듈은 일반적으로 컴파일 시 생성되는 단위이며, 일반적으로 프로젝트를 말합니다.

internal class InternalClass {
    internal val internalProperty: Int = 42
    internal fun internalMethod() {
        println("This is an internal method")
    }
}

 

3. protected

protected 가시성은 같은 클래스 내부와 그 클래스를 상속받은 클래스 내에서만 접근할 수 있습니다.

open class Parent {
    protected val protectedProperty: Int = 42
}

class Child : Parent() {
    fun accessProtectedProperty() {
        println("Protected property value: $protectedProperty")
    }
}

 

4. private

- private 가시성은 같은 클래스 내부에서만 접근할 수 있습니다.
- 최상위 수준(패키지 내)에서는 private 멤버를 사용할 수 없습니다.

class PrivateExample {
    private val privateProperty: Int = 42
    private fun privateMethod() {
        println("This is a private method")
    }
}

 

주의사항

- 가시성 수준을 지정하지 않을 경우, 기본적으로 public 가시성을 갖게 됩니다.
- 클래스의 가시성 수준은 해당 파일의 가시성 수준과 같아야 합니다.
- protected 멤버는 최상위 수준에서는 사용할 수 없습니다.

 

가시성을 적절히 활용하여 모듈화하고 코드의 접근성을 관리함으로써 코드의 유지보수성과 안전성을 높일 수 있습니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 지역 클래스  (0) 2023.12.30
코틀린 내포된 클래스  (0) 2023.12.30
코틀린 생성자  (0) 2023.12.25
코틀린 클래스 내부 구조  (0) 2023.12.25
코틀린 클래스 정의  (0) 2023.12.25