data class
- Kotlin kursu
- Orta seviye
- Ders 13/116
- 5 dk
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
// User veri sınıfı tanımı
// name ve age özellikleri ile
// main'de örnekle ve yazdırÖrnek çözüm
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
data ____ User(val name: String, val age: Int)
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 |