Junior — Middle
Obyekt yaradılarkən xüsusiyyətlərin ilkinləşdirilməsi və kod bloklarının icrası hansı ardıcıllıqla baş verir, o cümlədən companion object, init bloku, konstruktor daxilində dəyişənlər və adi dəyişənlər?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də obyekt yaradarkən, başlanğıc ardıcıllığı aşağıdakı kimidir:
- companion object-inin başlanması — sinif yüklənərkən bir dəfə baş verir, nümunələr yaradılmadan əvvəl.
- Sinifin bədənində elan olunan xüsusiyyətlərin başlanması (konstruktor xaricində elan olunan xüsusiyyətlər daxil olmaqla) — onlar elan olunma ardıcıllığında başlanır.
- init bloklarının icrası — onlar sinifdə elan olunduqları ardıcıllıqla, xüsusiyyətlərin başlanmasından dərhal sonra icra olunur.
- Konstruktorun elan etdiyi xüsusiyyətlərin başlanması (məsələn, val/var parametrləri) — onlar konstruktor çağırılarkən başlanır.
Nümunə:
class Example(val constructorProp: String) {
val property1 = println("property1 başlanıb")
init {
println("init bloku 1")
}
val property2 = println("property2 başlanıb")
init {
println("init bloku 2")
}
companion object {
init {
println("companion object başlanıb")
}
}
}
fun main() {
val example = Example("konstruktor")
}
Nəticə təxminən belə olacaq:
companion object başlanıb
property1 başlanıb
init bloku 1
property2 başlanıb
init bloku 2
Bu şəkildə, companion object bir dəfə sinif yüklənərkən başlanır, sonra obyekt yaradılarkən xüsusiyyətlər başlanır və init blokları elan olunma ardıcıllığında icra olunur, və konstruktor parametrləri konstruktor çağırılarkən başlanır.