
📢 *Visibility modifiers 이란?
→ Visibility modifiers란 class, interface, fun, property, object, constructor 등 객체의 범위를 지정해주는 키워드 이다.❗ 주의사항
→ **로컬 변수, 로컬 함수, 로컬 클래스는 Visibility Modifier를 가질 수 없다.*Visibility modifiers : 가시성 수정자 혹은 접근 제한자(Access Modifier)
open class Outer {
    private val a = 1
    protected open val b = 2
    internal open val c = 3
    val d = 4  // default 값은 public 이다.
    protected class Nested {
        public val e: Int = 5
    }
}
class Subclass : Outer() {
    // a 접근 불가
    // b, c, d 접근 가능
    // Nested, e 접근 가능
    override val b = 5   // b 는 protected 이므로 접근 가능
    override val c = 7   // c 는 internal 이므로 접근 가능
}
class Unrelated(o: Outer) {
    // o.a, o.b 접근 불가
    // o.c, o.d 접근 가능 (같은 모듈)
    // Outer.Nested, Nested::e 접근 불가
}