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
valveyavarolmalıdır. - Veri sınıfı
abstract,open,sealedveyainnerolamaz. - 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.