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()
}