Məlumat sinifində qurucular nə üçün istifadə olunur və onlarsız olmaq mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Məlumatlar sinfində, konstruktor onun xüsusiyyətlərini obyekt yaradılarkən başlatmaq üçün istifadə olunur. O, avtomatik olaraq, sinf adından sonra mötərizədə göstərilən xüsusiyyətlərə əsasən, tərtibçi tərəfindən yaradılır.
Açıq açıqlanan konstruktorun tərtibçidən qaçınmaq və istifadə etmək tövsiyə olunur, çünki tərtibçi avtomatik olaraq aşağıdakıları yaradır:
- Əsas konstruktor
(val/var property1: Type1, val/var property2: Type2, ...) equals(),hashCode(),toString()metodlarıcopy()metodu- Yıxıcılar üçün
componentN()metodları
Nümunə:
// Avtomatik yaradılan konstruktor ilə məlumatlar sinfi
data class User(val name: String, val age: Int)
// Obyektin yaradılması
val user = User("Alice", 30)
Əl ilə konstruktor yazmağa ehtiyac yoxdur, yalnız ikinci dərəcəli konstruktor başqa başlanğıc məntiqi və ya standart xüsusiyyətlər tələb edirsə, lakin bu data classda nadir hallarda olur, çünki onun əsas məqsədi sadəcə məlumatların saxlanmasıdır. Hətta standart xüsusiyyətlər də əsas konstruktor ilə göstərilə bilər:
// Standart xüsusiyyətə malik məlumatlar sinfi
data class Product(val id: Int, val name: String, val price: Double = 0.0)
Beləliklə, data classda konstruktor həmişə mövcuddur, lakin onun tərifi çox hallarda tərtibçi tərəfindən götürülür.