접근 제한자
접근 제한자란 코틀린에서 코틀린에서 클래스, 인터페이스, 프로퍼티를 제한하는 데 사용하는 키워드로 public, private, protected, internal 이렇게 4가지 종류가 있다
public
public은 클래스나 인터페이스 등이 접근 제한자로 명시되지 않는다면 설정되는 기본 제한자로 public으로 설정된 요소는 프로젝트 어디서든 접근 가능하다
private
private는 프로퍼티, 필드 등이 선언된 블록에서만 요소에 접근할 수 있게 스코프 밖으로의 접근을 막아 선언된 곳에서만 접근할 수 있게 한다
internal
internal는 자바에 없는 코틀린만의 기능으로 시행된 모듈 안에서만 필드가 보이게 합니다 모든 필드는 internal로 선언되고 이는 시행된 모듈 안에서만 접근 가능하다 여기서 모듈은 한꺼번에 컴파일되는 코틀린 파일들을 의미한다
open
코틀린에서는 모든 클래스는 자동으로 최종값이다 그래서 자동으로 상속받을 수 없다 그러므로 상속을 사용하려면 클래스를 open으로 만들어야 한다
protected
protected는 그 안의 클래스 또는 서브 클래스에 보이도록 해준다 또한 서브 클래스 안의 오버라이딩한 Protected 선언은 변경을 명시하지 않는 한 보호받으며 최상위에 선언될 수 없어 패키지는 보호받을 수 없다