Intro

가시성 변경자는 접근 제한자라고도 불리며, 말 그대로 가시성을 지정하여 접근 범위를 제한하는 기능을 한다. 코틀린에서 선언할 수 있는 거의 모든 것들은 모두 가시성 변경자를 가지고 있다.

코틀린에서 지원하는 가시성 변경자는 private, protected, internal, public 4가지이며, 이 중 default는 public으로 생략이 가능하다. (즉, 생략하면 public)

각 가시성 변경자들은 선언되는 위치에 따라 제한 범위가 다르다.

Package(Top level)

최상위 선언에서 각 가시성 변경자를 알아보자

Class Member

클래스(인터페이스) 멤버의 가시성 변경자를 알아보자

생성자(Constructor)

생성자의 기본 가시성 변경자는 public (생략 가능), 가시성 변경자를 선언할려면 생성자의 constructor키워드를 생략할 수 없다.

class C private constructor(a: Int) { ... }

open class D constructor(private val a: Int, protected val b: Int) { ... }

규칙