Sobes.tech
Junior

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.