Sobes.tech
Junior

Kotlin'de veri sınıfları nasıl çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'deki veri sınıfları, verileri depolamak için kullanılır. Derleyici, standart yöntemleri otomatik olarak oluşturur:

  • equals(): Özelliklerin değerlerine göre örnekleri karşılaştırır.
  • hashCode(): Özelliklerin değerlerine göre bir karma kodu üretir.
  • toString(): Tüm özelliklerin isimlerini ve değerlerini içeren dize temsili döndürür.
  • copy(): Nesnenin bir kopyasını oluşturur ve gerekirse belirtilen özelliklerin değerlerini değiştirir.
  • componentN(): Nesnenin özelliklerine ayrıştırma (destructuring) için metodlar.
// Veri sınıfı örneği
data class User(val name: String, val age: Int)

fun main() {
    val user1 = User("Alice", 30)
    val user2 = User("Alice", 30)
    val user3 = User("Bob", 25)

    // equals()
    println(user1 == user2) // true
    println(user1 == user3) // false

    // toString()
    println(user1.toString()) // User(name=Alice, age=30)

    // copy()
    val user4 = user1.copy(age = 31)
    println(user4) // User(name=Alice, age=31)

    // componentN() ve destruktürasyon
    val (name, age) = user1
    println("İsim: $name, Yaş: $age") // İsim: Alice, Yaş: 30
}

Anahtar noktalar:

  • Ana yapıcıda tanımlanan tüm özellikler val veya var olmalıdır.
  • Veri sınıfı abstract, open, sealed veya inner olamaz.
  • Veri sınıfları diğer sınıflardan kalıtım alabilir veya arayüzleri uygulayabilir.
  • Ana yapıcı dışında tanımlanan özellikler, standart metodların oluşturulmasına katılmaz.
Metot Açıklama
equals() Ana yapıcıdaki özellikleri karşılaştırır.
hashCode() Ana yapıcıdaki özelliklere göre bir karma kodu üretir.
toString() Ana yapıcıdaki özelliklerin string temsili.
copy() Özellikleri değiştirme imkanıyla yüzeysel kopya oluşturur.
componentN() Özelliklere sırasıyla erişim sağlar.

Veri sınıfları, POJO (Plain Old Java Object) veya DTO (Data Transfer Object) ile çalışma işini önemli ölçüde basitleştirir ve gereksiz kodu azaltır.