0Pricing
Kotlin Academy · Ders

Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler

data sınıfının neler oluşturduğunu anlayın: equals, hashCode, toString ve copy.

Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Veri Sınıfı Nedir?

Veri sınıfı, temel amacı değerleri tutmak olan bir sınıftır. Kotlin derleyicisi sizin için otomatik olarak equals, hashCode, toString, copy ve componentN işlevlerini oluşturur.

Veri Sınıfı Tanımlama

Normal bir sınıfın başına data ekleyin. Birincil oluşturucudaki tüm parametreler val veya var olmalıdır.

data class User(val name: String, val age: Int)
fun main() {
    val u = User("Ada", 35)
    println(u)
}

Otomatik Oluşturulan toString

Derleyici, her özelliği adıyla listeleyen bir toString oluşturur.

data class Point(val x: Int, val y: Int)
fun main() {
    println(Point(3, 5)) // Point(x=3, y=5)
}

Otomatik Oluşturulan equals

equals, tüm özellik değerlerini karşılaştırır; aynı alanlara sahip iki örnek, başvuru kimlikleri farklı olsa bile eşittir.

data class Coord(val lat: Double, val lng: Double)
fun main() {
    val a = Coord(41.0, 29.0)
    val b = Coord(41.0, 29.0)
    println(a == b)      // true (structural)
    println(a === b)     // false (reference)
}

Otomatik Oluşturulan hashCode

hashCode, equals ile tutarlıdır: eşit nesneler eşit özetler üretir; bu nedenle veri sınıfları kümelerde ve eşleme anahtarları olarak doğru çalışır.

data class Key(val id: Int, val tag: String)
fun main() {
    val map = mapOf(Key(1, "a") to "one")
    println(map[Key(1, "a")]) // one
}

Otomatik Oluşturulan copy

copy(), aynı alan değerlerine sahip yeni bir örnek oluşturur ve adlandırılmış bağımsız değişkenlerle alan bazında geçersiz kılmalara olanak tanır.

data class Config(val host: String, val port: Int, val tls: Boolean)
fun main() {
    val dev = Config("localhost", 8080, false)
    val prod = dev.copy(host = "prod.example.com", tls = true)
    println(prod) // Config(host=prod.example.com, port=8080, tls=true)
}

Otomatik Oluşturulan componentN

Her özellik, parçalarına ayırmayı mümkün kılan bir componentN() işlevi (component1, component2, ...) alır.

data class Pair2(val first: String, val second: Int)
fun main() {
    val p = Pair2("Ada", 35)
    val (name, age) = p
    println("$name is $age")
}

Veri Sınıflarının Yapmadıkları

Veri sınıfları devralınan alanlar için toString oluşturmaz, varsayılan olarak final'dır ve abstract, open, sealed veya inner olamaz.

data class Sample(val n: Int)
// open data class Bad(...) // ERROR
// sealed data class Bad(...) // ERROR
fun main() { println(Sample(1)) }

Birincil Oluşturucunun Dışındaki Özellikler

Sınıf gövdesinde bildirilen özellikler equals, hashCode, toString veya copy işlemlerine NOT katılır.

data class Person(val name: String) {
    var nickname: String = ""
}
fun main() {
    val a = Person("Ada").apply { nickname = "Augusta" }
    val b = Person("Ada").apply { nickname = "Different" }
    println(a == b)   // true — only name matters
    println(a)         // Person(name=Ada)
}

Varsayılan Değerler

Esnek oluşturma için data class'ı varsayılan parametrelerle birleştirin.

data class Request(
    val url: String,
    val method: String = "GET",
    val headers: Map<String, String> = emptyMap()
)
fun main() {
    println(Request("https://api.example.com"))
}

Uygulamalı: DTO Sınıfı

Veri sınıfları DTO'lar, API yanıtları ve değer nesneleri için idealdir.

data class ApiResponse(
    val status: Int,
    val body: String,
    val timestamp: Long
)
fun main() {
    val ok = ApiResponse(200, "{}", System.currentTimeMillis())
    println(ok)
}

Hızlı Kontrol

Kotlin derleyicisi bir veri sınıfı için hangi yöntemi otomatik olarak oluşturmaz?

Özet

Bir data class, birincil oluşturucusundaki özelliklerden equals, hashCode, toString, copy ve componentN işlevlerini otomatik olarak oluşturur. Oluşturucunun dışındaki özellikler dahil edilmez. Veri sınıflarını DTO'lar, değer nesneleri ve ilişkili değerlerden oluşan her türlü kapsayıcı için kullanın.

Sıkça Sorulan Sorular

“Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler” dersi ücretsiz mi?

Evet — “Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler” dersinde ne öğreneceğim?

data sınıfının neler oluşturduğunu anlayın: equals, hashCode, toString ve copy. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Data Sınıfı Temelleri: Otomatik Oluşturulan Yöntemler
  2. copy() ve Kısmi Geçersiz Kılmalarla Kopyalama
  3. componentN ile Yapı Bozma Bildirimleri
  4. Koleksiyonlarda ve Map Anahtarları Olarak Data Sınıfları
← Kotlin Academy Sayfasına Dön