[kotlin] 코틀린에서 함수와 메서드의 가시성 범위

코틀린에서는 함수와 메서드의 가시성 범위에 대한 개념이 중요합니다. 가시성 범위에 따라 외부에서 어떤 요소에 접근할 수 있는지가 결정됩니다.

함수의 가시성 범위

코틀린에서 함수에는 4가지 가시성 범위가 있습니다.

1. public

fun publicFunction() {
    // 외부에서 접근 가능
}

2. private

private fun privateFunction() {
    // 같은 파일 안에서만 접근 가능
}

3. internal

internal fun internalFunction() {
    // 같은 모듈 안에서만 접근 가능
}

4. protected

open class Foo {
    protected open fun protectedFunction() {
        // 하위 클래스에서만 접근 가능
    }
}

메서드의 가시성 범위

메서드의 가시성 범위도 함수와 비슷하지만 클래스의 멤버로 사용되는 특성 때문에 약간 다릅니다.

1. public

class Example {
    fun publicMethod() {
        // 외부에서 접근 가능
    }
}

2. private

class Example {
    private fun privateMethod() {
        // 클래스 내부에서만 접근 가능
    }
}

3. protected

open class Foo {
    protected open fun protectedMethod() {
        // 하위 클래스에서만 접근 가능
    }
}

4. internal

class Example {
    internal fun internalMethod() {
        // 같은 모듈 안에서만 접근 가능
    }
}

결론

코틀린에서는 함수와 메서드 모두 가시성 범위를 가지고 있으며, 이를 활용하여 프로그램의 모듈성을 유지하고 외부와의 인터페이스를 명확히 할 수 있습니다.

참고 자료