Sobes.tech
Junior — Middle

Ներկայացրեք, թե ինչ են փակ դասերը Kotlin-ում և ինչպես են օգտագործվում

sobes.tech AI

Պատասխան AI-ից

Kotlin-да հատուկ հասկացություն «փակ դասեր» (closed classes) որպես առանձին տիպ չկա, բայց կա նման գաղափար՝ sealed դասեր (մխիթարած դասեր):

Sealed դասը սահմանափակում է ժառանգության հիերարխիան՝ բոլոր ենթակլասները պետք է հայտարարվեն նույն ֆայլում: Սա թույլ է տալիս կոմպիլյատորին իմանալ բոլոր հնարավոր ենթակլասները և օգտագործել դրանք, օրինակ, when արտահայտություններում, առանց անհրաժեշտության գրել else ճյուղ:

Sealed դասերը հարմար են սահմանափակ տարբերակների հավաքածուի մոդելավորման համար, օրինակ՝ վիճակների կամ իրադարձությունների:

Օրինակ՝

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("Տվյալներ: ${result.data}")
        is Result.Error -> println("Սխալ: ${result.error.message}")
    }
}

Եթե «փակ դասեր» ենթադրում է private կամ internal մոդիֆիկատորով հայտարարված դասեր, ապա դրանք սահմանափակ տեսանելիության դասեր են՝ private — միայն ֆայլի ներսում, internal — մոդուլում։