Kotlin/포스팅

코틀린 지역 클래스

짜집퍼박사(짜박) 2023. 12. 30. 11:25

코틀린에서는 지역 클래스(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