Sobes.tech
Junior — Middle

Kotlin-də bağlanmış siniflər nədir və necə istifadə olunur, izah edin

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də "bağlı sinflər" (closed classes) kimi xüsusi bir anlayış mövcud deyil, amma oxşar bir konsept var: sealed sinflər (mühürlənmiş sinflər).

Sealed sinf irsiyyət hiyerarşisini məhdudlaşdırır: bu sinfin bütün alt sinfləri eyni faylda elan edilməlidir. Bu, tərtibçiyə bütün mümkün alt sinfləri bilməyə imkan verir və məsələn, when ifadələrində else bölməsini yazmadan istifadə etməyə imkan verir.

Sealed sinflər, məhdud variantlar dəstini modelləşdirmək üçün əlverişlidir, məsələn, vəziyyətlər və ya hadisələr.

Nümunə:

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("Məlumat: ${result.data}")
        is Result.Error -> println("Xəta: ${result.error.message}")
    }
}

Əgər "bağlı sinflər" ifadəsi private və ya internal modifikatoru ilə elan olunan sinfləri nəzərdə tutursa, bunlar məhdud görünürlük sahəsinə malik sinflərdir: private — yalnız fayl daxilində görünür, internal — modul daxilində.