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 — иә.