접근 제한자
// public
class Person {
public var name: String = "John" // 모든 곳에서 접근 가능
}
// private
class Person {
private var age: Int = 30 // 클래스 내부에서만 접근 가능
private fun getAge(): Int {
return age
}
}
// protected
open class Animal {
protected fun makeSound() {
println("Some sound")
}
}
class Dog : Animal() {
fun bark() {
makeSound() // 상속받은 protected 메서드 접근 가능
}
}
// iternal
internal class InternalClass {
internal fun doSomething() {
println("Internal method")
}
}
접근 제한자는 클래스, 메서드, 속성, 변수 등에 대한 접근 범위를 정의하는 데 사용됩니다. 이를 통해 클래스의 구성 요소가 어디에서 접근 가능한지를 제어할 수 있습니다.
- public
- 설명: 기본 접근 수정자로, 모든 클래스, 패키지, 모듈에서 접근 가능합니다. 접근 제한이 없으며, 다른 모듈에서도 접근할 수 있습니다.
- 기본값: 클래스, 메서드, 속성에 명시적으로 접근 수정자를 지정하지 않으면 기본적으로 public으로 간주됩니다.
- private
- 설명: 선언된 클래스, 파일 또는 내부에서만 접근할 수 있습니다. 클래스 내부에서 정의된 private 속성이나 메서드는 그 클래스 내에서만 사용 가능합니다.
- 사용 예: 클래스 내부의 구현 세부 사항을 외부로부터 숨기고 싶을 때 사용합니다
- protected
- 설명: 상속 관계에 있는 클래스에서만 접근할 수 있습니다. 즉, 해당 클래스와 그 클래스의 서브클래스에서만 접근 가능합니다.
- 사용 예: 클래스의 내부 구현을 서브클래스에서만 사용하도록 허용하고, 외부에서는 접근할 수 없도록 할 때 사용합니다.
- internal
- 설명: 동일한 모듈 내에서만 접근할 수 있습니다. 모듈은 같은 컴파일러에 의해 컴파일되는 코드의 집합으로, Gradle 프로젝트에서는 보통 하나의 Gradle 모듈이 하나의 모듈에 해당합니다.
출처
Extensions | Kotlin
kotlinlang.org
'개발 언어 (Language) > Kotlin' 카테고리의 다른 글
코틀린 Nested 와 inner 클래스 (0) | 2024.07.31 |
---|---|
코틀린에서의 인터페이스 (0) | 2024.07.31 |
코틀린에서의 속성 (0) | 2024.07.31 |
코틀린에서의 상속 (0) | 2024.07.29 |
코틀린에서의 멤버함수(클래스 함수) (0) | 2024.07.29 |