Kotlin'da yopiq sinflar nima va ular qanday ishlatiladi, tushuntiring
sobes.tech AI
AIdan javob
Kotlinda "yopiq sinflar" (closed classes) deb nomli maxsus tushuncha mavjud emas, ammo shunga o'xshash tushuncha — sealed sinflar (yopiq sinflar).
Sealed sinf vorislik hierarhiyasini cheklaydi: bu sinfning barcha vorislari bir xil faylda e'lon qilinishi kerak. Bu kompilatorga barcha mumkin bo'lgan vorislarni bilishga imkon beradi va masalan, when ifodalarida else bo'lagi yozmasdan foydalanishga imkon beradi.
Sealed sinflardan foydalanish cheklangan variantlar to'plamini modellash uchun qulay, masalan, holatlar yoki voqealar.
Misol:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Ma'lumot: ${result.data}")
is Result.Error -> println("Xato: ${result.error.message}")
}
}
Agar "yopiq sinflar" deb private yoki internal modifikatoriga ega sinflar nazarda tutilayotgan bo'lsa, ular cheklangan ko'rinish doirasiga ega sinflardir: private — faqat fayl ichida ko'rinadi, internal — modul ichida.