본문 바로가기

코틀린/개념

[Kotlin] 접근 제한자

접근 제한자란 클래스의 멤버를 외부의 어느 범위까지 이용하게 할 것인지를 결정하는 키워드이다.

 

물론 코틀린에서는 변수나 함수를 클래스로 묶지 않고 소스 파일의 최상위에 선언 할 수 있고, 접근 제한자로 이용 범위를 지정할 수 있다.

 

접근 제한자 최상위에서 이용 클래스 멤버에서 이용
public 모든 파일에서 가능 모든 클래스에서 가능
internal 같은 모듈 내에서 가능 같은 모듈 내에서 가능
protected 사용 불가 상속 관계 하위클래스에서 가능
private 파일 내부에서 가능 클래스 내부에서 가능

*키워드와 접근 범위를 나타낸 표이다.

 

- public 키워드는 접근 제한이 없어 어디서든 접근이 가능하다. 

-> 코틀린에서는 접근 제한자를 생략하면 기본적으로 public이 된다.

 

- internal 키워드는 같은 모듈 내에서 접근 가능하다.

-> 모듈 개념은 그래들이나 메이븐 같은 빌드 도구에서 프로젝트 단위나 같은 세트 단위를 가르킨다.

 

- protected 키워드는 클래스의 멤버에서만 선언 가능하며 최상위에 선언되는 변수나 함수는 선언 할 수 없다.

protected로 선언한 클래스의 멤버는 해당 클래스 내부와 상속 받는 하위 클래스에서 접근 가능하다.

 

- private 키워드는 해당 클래스 내부에서만 접근 가능하며, 최상위에서 선언 시 해당 파일 내부에서 접근 가능하다.

 

open class Modifier {
    var publicData = 10
    protected var protectedData = 20
    private var privateData = 30
    internal var internalData = 40

}

class Submodifier : Modifier() {
    fun subFun() {
        publicData++
        protectedData++
        internalData++
    }
}

fun main() {
    val obj = Modifier()
    obj.publicData++
    
}

*예시

 

main 클래스에서는 public 키워드만 접근 가능한것이다.

 

자세하게는 공부를 더해가며 추가 작성하겠습니다~ :)

 

'코틀린 > 개념' 카테고리의 다른 글