코틀린에서는 지역 클래스(Local Class)를 사용하여 함수나 블록 내에서 클래스를 정의할 수 있습니다. 지역 클래스는 특정 범위 내에서만 유효하며, 해당 범위를 벗어나면 접근할 수 없습니다.
아래는 지역 클래스의 기본적인 예제입니다.
fun outerFunction() {
val outerVariable = 10
class LocalClass {
fun accessOuterVariable() {
println("Outer variable: $outerVariable")
}
}
val localInstance = LocalClass()
localInstance.accessOuterVariable()
}
fun main() {
outerFunction()
}
위의 예제에서 LocalClass는 outerFunction 내에서 정의되었습니다. 이 클래스는 outerFunction 내부의 로컬 변수 outerVariable에 접근할 수 있습니다.
지역 클래스의 특징
1. 범위 제한: 지역 클래스는 정의된 함수나 블록 내에서만 유효합니다. 벗어난 곳에서는 접근할 수 없습니다.
2. 접근 규칙: 지역 클래스는 외부 함수의 지역 변수에 접근할 수 있습니다. 단, 해당 변수가 val로 선언되어 변경되지 않아야 합니다. 만약 해당 변수가 var로 선언되어 있다면, 지역 클래스에서 해당 변수를 변경할 수 없습니다.
3. 생명 주기: 지역 클래스의 인스턴스는 지역 클래스가 정의된 함수나 블록이 호출될 때 생성되며, 해당 함수나 블록의 실행이 종료될 때까지 존재합니다.
4. 접근성 제한: 지역 클래스의 인스턴스를 외부에서 직접 생성할 수 없습니다. 즉, 지역 클래스는 외부에서 private이거나 protected로 선언되지 않은 한 외부에서 직접 접근할 수 없습니다.
지역 클래스는 특정 함수나 블록 내에서만 필요한 클래스를 정의할 때 유용하게 사용될 수 있습니다.
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 스마트 캐스트 (0) | 2023.12.30 |
---|---|
코틀린 널 가능성 (0) | 2023.12.30 |
코틀린 내포된 클래스 (0) | 2023.12.30 |
코틀린 멤버 가시성 (0) | 2023.12.29 |
코틀린 생성자 (0) | 2023.12.25 |