Junior
Görünüş modifikatorları nədir və Kotlin-də necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də görünürlük modifikatorları, bəyanatların (siniflər, interfeyslər, funksiyalar, xüsusiyyətlər) proqramın digər hissələri üçün əlçatanlığını müəyyən edir.
Əsas görünürlük modifikatorları:
public: Hər yerdə görünür. Bu, varsayılan modifikatordur.internal: Yalnız bir modul daxilində görünür. Modul, birlikdə tərtib olunan Kotlin fayllarının toplusudur.protected: Sinif və onun törəmələri daxilində görünür (daxilindəki üzvlər daxil olmaqla). Paket xaricində görünmür.private: Yalnız elan olunduğu fayl daxilində görünür. Sinif üzvləri üçün, yalnız bu sinif daxilində (və onun companion object, iç içə və daxili siniflərində).
Modifikatorların tətbiqi:
- Siniflər, interfeyslər, obyektlər və onların qurucuları üzərində.
- Funksiyalar, xüsusiyyətlər və onların getter/setter-ləri üzərində, yuxarı səviyyədə (siniflərdən kənarda).
- Sinif üzvləri üzərində (iç içə siniflər, daxili siniflər, funksiyalar, xüsusiyyətlər).
Nümunə:
// Fayl: example.kt
private const val PRIVATE_CONSTANT = 1 // Yalnız bu faylda görünür
internal fun internalFunction() { // Yalnız modul daxilində görünür
println("Daxili funksiya çağırıldı")
}
open class BaseClass {
protected val protectedProperty = "Protected" // Bu sinif və onun törəmələri daxilində görünür
fun publicMethod() { // Hər yerdə görünür (varsayılan public)
println("İctimai metod çağırıldı")
}
private fun privateMethod() { // Yalnız BaseClass daxilində görünür
println("Özəl metod çağırıldı")
}
}
class DerivedClass : BaseClass() {
fun accessProtected() {
println("Mühafizə olunmuş xüsusiyyətə giriş: $protectedProperty") // protected-ə giriş
// privateMethod() // Xəta: private alt sinifdə görünmür
}
}
fun main() {
val base = BaseClass()
base.publicMethod()
// base.protectedProperty // Xəta: protected sinif və onun törəmələri xaricində görünmür
val derived = DerivedClass()
derived.accessProtected()
internalFunction()
// PRIVATE_CONSTANT // Xəta: private yuxarı səviyyədə yalnız elan olunduğu faylda görünür
}
| Modifikator | Əlçatanlıq | Harada istifadə etmək olar |
|---|---|---|
public |
Hər yerdə | Varsayılan, başqa modifikator göstərilmədikdə |
internal |
Modul daxilində | Kitabxana və ya modul daxilində API üçün |
protected |
Sinif və onun törəmələri daxilində (üzvlər üçün) | Sinif irsiylə əlaqəli ierarxiyalar yaratmaq üçün |
private |
Fayl daxilində (yuxarı səviyyədə); sinif daxilində (üzvlər üçün) | Detalları gizlətmək üçün fayl və ya sinif daxilində istifadə olunur |