개발일지

Kotlin in A..Z (15) - 가시성 지시자 본문

Kotlin (코틀린)

Kotlin in A..Z (15) - 가시성 지시자

강태종 2020. 7. 15. 21:40

가시성 지시자

가시성 지시자 의미
private 외부에서 접근할 수 없다.
public 어디서든 접근할 수 있다.
protected 외부에서 접근할 수 없으나 상속 관계에선 접근 할 수 있다.
internal 같은 정의의 모듈에서 접근할 수 있다.

코드

open class A (
    private var privateVar: Int = 0,
    protected var protectedVar: Int = 0,
    public var publicVar: Int = 0,
    internal var internalVar: Int = 0,
    var noneVar: Int = 0 // 가시성 지시자를 지정하지 않으면 자동으로 public
) {

}

class B : A() {
    fun action() {
        println(privateVar) // private은 외부에서 접근할 수 없음
        println(protectedVar) // 상속관계에서 protected는 접근할 수 있음
        println(publicVar)
        println(internalVar)
        println(noneVar)
    }
}

fun main() {
    val b = B()

    b.action()
    println(b.privateVar) // private은 외부에서 접근할 수 없음
    println(b.protectedVar) // protected는 외부에서 접근할 수 없음
    println(b.publicVar)
    println(b.internalVar)
    println(b.noneVar)
}

 

Java의 package 가시성 지시자

Java의 package 가시성 지시자는 같은 package안에서 접근할 수 있는 지시자이다. 하지만 프로젝트 단위 묶음의 jar파일이 달라져도 패키지 이름이 동일하면 접근할 수 있는 문제점이 있다.

 

Comments