Kotlin/포스팅

코틀린 함수 가시성 (접근제한자)

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

코틀린에서는 함수나 클래스의 멤버에 대한 가시성(visibility)을 지정할 수 있습니다. 가시성은 해당 요소가 다른 코드에서 어떻게 접근 가능한지를 결정합니다. 코틀린은 기본적으로 가시성을 세 가지로 나눕니다.

 

1. public

기본적으로 코틀린에서는 모든 선언이 public 가시성을 가지며, 어떤 패키지에서도 접근 가능합니다. 명시적으로 가시성을 지정하지 않으면 public으로 간주됩니다.

class Example {
    fun publicFunction() {
        println("This is a public function")
    }
}

 

2. internal

internal 가시성은 같은 모듈(module) 내에서만 접근이 가능합니다. 모듈은 일반적으로 하나의 프로젝트를 나타내며, 프로젝트 내의 모든 패키지를 포함합니다.

internal class InternalClass {
    internal fun internalFunction() {
        println("This is an internal function")
    }
}

 

3. private 및 protected

private과 protected는 클래스의 멤버에 사용됩니다.

- private: 동일한 클래스 내에서만 접근이 가능합니다.

class PrivateExample {
    private fun privateFunction() {
        println("This is a private function")
    }

    fun callPrivateFunction() {
        privateFunction()
    }
}

- protected: 동일한 클래스 내부와 해당 클래스를 상속받은 하위 클래스에서만 접근이 가능합니다.

open class Parent {
    protected fun protectedFunction() {
        println("This is a protected function")
    }
}

class Child : Parent() {
    fun callProtectedFunction() {
        protectedFunction()
    }
}

위의 예제에서 Child 클래스는 Parent 클래스를 상속받았으므로 protectedFunction에 접근할 수 있습니다.

가시성을 명시적으로 지정하는 것은 코드의 가독성을 높이고, 프로젝트의 유지보수를 용이하게 만듭니다. 따라서 가시성을 신중하게 사용하여 코드를 설계하는 것이 좋습니다.

 

With ChatGPT

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

코틀린 패키지 임포트 (import)  (0) 2023.12.23
코틀린 패키지  (0) 2023.12.23
코틀린 함수의 영역  (0) 2023.12.23
코틀린 가변인자 vararg 키워드  (0) 2023.12.17
코틀린 디폴트 값  (0) 2023.12.17