접근 제한자란 클래스의 멤버를 외부의 어느 범위까지 이용하게 할 것인지를 결정하는 키워드이다.
물론 코틀린에서는 변수나 함수를 클래스로 묶지 않고 소스 파일의 최상위에 선언 할 수 있고, 접근 제한자로 이용 범위를 지정할 수 있다.
접근 제한자 | 최상위에서 이용 | 클래스 멤버에서 이용 |
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 키워드만 접근 가능한것이다.
자세하게는 공부를 더해가며 추가 작성하겠습니다~ :)

'코틀린 > 개념' 카테고리의 다른 글
[Kotlin] 클래스의 종류(2) - 오브젝트 클래스 (0) | 2024.03.01 |
---|---|
[Kotlin] 클래스의 종류(1) - 데이터 클래스 (0) | 2024.02.29 |
[Kotlin] 상속 (0) | 2024.02.26 |
[Kotlin] 변수 (0) | 2024.02.19 |
[Kotlin] 클래스 (0) | 2024.02.18 |