CodeBlanks Logo Icon CodeBlanks

data class

data class ile veri sınıfı tanımlamayı öğrenirsin.

data class

Bir data class, veri tutmak için tasarlanmış özel bir sınıftır. data niteleyicisi eklenince Kotlin otomatik olarak equals, hashCode, toString, copy ve componentN metotlarını üretir.

Örnek: data class User(val name: String, val age: Int). Bu tek satır, hem iki özelliği hem de beş yardımcı metodu içerir. Veri sınıfları en az bir parametreli primary constructor almalıdır. val veya var ile işaretlenmiş parametreler özellik olur.

data class kısıtları

Bir data class'ın primary constructor'ı en az bir parametre içermelidir. Tüm parametreler val veya var ile işaretlenmelidir; işaretlenmeyenler özellik olmaz.

Örnek: data class User(val name: String, val age: Int) geçerlidir. data class User(name: String) ise özellik olmadığı için equals ve toString beklendiği gibi çalışmaz. Data class'lar open, abstract veya sealed olamaz; miras kapatılmıştır.

Uygulama User veri sınıfını tanımla

User adında bir veri sınıfı tanımla; primary constructor val name: String, val age: Int alsın. main içinde User("Ayşe", 30) örneği oluştur ve örneği println ile yazdır.

Başlangıç kodu

Main.kt
// User veri sınıfı tanımı
// name ve age özellikleri ile
// main'de örnekle ve yazdır

Örnek çözüm

Main.kt
data class User(val name: String, val age: Int)

fun main() {
    val u = User("Ayşe", 30)
    println(u)
}

Beklenen çıktı

User(name=Ayşe, age=30)

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>data class User(val name: String)</code> tanımı otomatik olarak aşağıdakilerden hangisini üretir?

  • Yalnızca constructor
  • equals, hashCode, toString ve copy Doğru cevap
  • Yalnızca toString
  • Hiçbir şey

Açıklama: data class equals, hashCode, toString, copy ve componentN üretir.

2 data class tanımını tamamla

Soru
data ____ User(val name: String, val age: Int)
Cevap
data class User(val name: String, val age: Int)

Açıklama: data class ile veri sınıfı tanımlanır.

3 data class metotlarını eşle

Kavram Anlamı
equals İçerik karşılaştırma
hashCode Karma değeri
toString Okunaklı dizge
copy Kopya üretme

Orta seviye bölümündeki tüm dersler