접근제한자

Kotlin의 접근제한자 종류

public: 명시하지 않으면 기본적으로 public 입니다 (어디서나 접근할 수 있어요)
private: 동일한 클래스 내부에서만 접근할 수 있습니다
internal: 같은 모듈 내부에서만 접근할 수 있습니다
protected: 기본적으로 private이지만 상속을 받은경우에 타 모듈에서 접근할 수 있습니다

예시 코드

class AccessTestClass {
    public var a:Int = 1
    var b = 2
    private var c = 3
    internal var d = 4
    protected var e = 5
    
    public fun publicTest() {
        println("public 입니다")
    }

    fun publicTest2() {
        println("public 입니다")
    }

    private fun privateTest() {
        println("private 입니다")
    }

    internal fun internalTest() {
        println("internal 입니다")
    }

    protected fun protectedTest() {
        println("protected 입니다")
    }
}
class AccessTestChildClass: AccessTestClass() {

    fun protectedTest1() {
        println("e의 값은 ${e}")
    }
}

실행해서 결과를 비교해요

fun main() {
    var accessTestClass = AccessTestClass()
    var accessTestChildClass = AccessTestChildClass()

// . 하고 접근가능한 요소를 확인
//    accessTestClass. 
    accessTestChildClass.protectedTest1()
}