Sobes.tech
Junior — Middle

Kotlin-де ішкі класс жариялауы мен ішкі класс арасындағы айырмашылық қандай?

sobes.tech AI

AI-дан жауап

Kotlin-те басқа классқа ішкі класс ретінде екі тип бар: ішкі класс (nested class) және ішкі класс (inner class).

  • Ішкі класс (nested class) — басқа класс ішінде inner кілт сөзі қолданылмай жарияланған класс. Мұндай класс сыртқы класс мүшелеріне қол жеткізе алмайды.

  • Ішкі класс (inner class)inner кілт сөзімен жарияланады. Ол сыртқы класс экземплярына сілтеме сақтайды және оның қасиеттері мен әдістеріне жүгінуге болады.

Мысал:

class Outer {
    private val bar: Int = 1

    class Nested {
        fun foo() = 2
    }

    inner class Inner {
        fun foo() = bar
    }
}

fun main() {
    val nested = Outer.Nested()
    println(nested.foo()) // 2

    val inner = Outer().Inner()
    println(inner.foo()) // 1
}

Мұнда Nested bar-ға қол жеткізе алмайды, ал Inner — иә.