Sobes.tech
Middle

Kotlin'de data sınıfları ve sealed sınıflar ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Veri sınıflar, yalnızca veri depolama amaçlı sınıfların oluşturulmasını kolaylaştırır. Derleyici bunlar için otomatik olarak şunları üretir:

  • equals()
  • hashCode()
  • toString()
  • copy()
  • componentN() destrukturasyon için
veri sınıfı User(val isim: String, val yaş: Int)

// Kullanım
val user = User("Alice", 30)
println(user) // User(isim=Alice, yaş=30) gösterir
val user2 = user.copy(yaş = 31)
val (isim, yaş) = user // Destrukturasyon

Mühürlenmiş sınıflar, tüm olası alt sınıfların derleme zamanında bilindiği sınırlı bir sınıf hiyerarşisini temsil eder. Bu, when ifadelerinde else bloğu olmadan kullanılmalarını sağlar ve tüm olasılıkların kapsamlı bir şekilde kontrol edilmesini garanti eder.

mühürlenmiş sınıf Result {
    veri sınıfı Success(val data: String) : Result()
    veri sınıfı Error(val message: String) : Result()
    nesne Loading : Result() // Parametre olmadığı için nesne
}

fun handleResult(result: Result) {
    when (result) {
        is Result.Success -> println("Başarı: ${result.data}")
        is Result.Error -> println("Hata: ${result.message}")
        Result.Loading -> println("Yükleniyor...")
    }
}

Karşılaştırma:

Özellik Veri sınıfı Mühürlenmiş sınıf
Amaç Veri depolama Sınırlı sınıf hiyerarşisi
Yetenekler Otomatik metod üretimi when içinde kapsamlı kontrol
Alt sınıflar Spesifik kısıtlama yok Aynı dosyada veya modülde olmalı
Kullanım Veri modelleri, DTO'lar Durumların, olayların, seçeneklerin temsil edilmesi