PHpullh
학습 라이브러리/Kotlin/중첩 클래스 (Nested Class)

KOTLIN · 객체지향

중첩 클래스 (Nested Class)

중첩 클래스는 외부 클래스의 인스턴스에 접근하지 않는 정적 내부 클래스입니다. Java의 static class에 해당합니다.

객체지향입문nested-classstatic-innerencapsulation

핵심 설명

중첩 클래스는 외부 클래스의 인스턴스에 접근하지 않는 정적 내부 클래스입니다. Java의 static class에 해당합니다.

Kotlin code

class Outer(val name: String) {
    // 중첩 클래스: 외부 인스턴스에 접근 불가
    class Nested {
        fun greet() = "중첩 클래스에서 인사!"
        // println(name) // 컴파일 오류!
    }

    // 중첩 enum
    enum class Color { RED, GREEN, BLUE }

    // 중첩 data class
    data class Config(val key: String, val value: String)

    fun createConfig() = Config("host", "localhost")
}

fun main() {
    // 외부 인스턴스 없이 생성 가능
    val nested = Outer.Nested()
    println(nested.greet())

    val color = Outer.Color.RED
    println(color)

    val config = Outer.Config("port", "8080")
    println(config)
}

학습 팁

중첩 클래스는 외부 클래스의 참조를 갖지 않아 메모리 누수 위험이 없습니다. 관련성 있는 타입을 논리적으로 그룹화할 때 사용하세요.

주의할 점

Kotlin의 중첩 클래스는 기본적으로 Java의 static class입니다. 외부 인스턴스 접근이 필요하면 inner class를 사용하세요.

자주 묻는 질문

중첩 클래스 (Nested Class)란 무엇인가요?

중첩 클래스는 외부 클래스의 인스턴스에 접근하지 않는 정적 내부 클래스입니다. Java의 static class 에 해당합니다.

중첩 클래스 (Nested Class) 학습 시 주의할 점은 무엇인가요?

Kotlin의 중첩 클래스는 기본적으로 Java의 static class 입니다. 외부 인스턴스 접근이 필요하면 inner class 를 사용하세요.