Birincil Yapıcı ve Özellik Parametreleri
Birincil yapıcılarla sınıflar tanımlayın ve özellikleri satır içinde bildirin.
Birincil Yapıcı ve Özellik Parametreleri, 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.
Birincil Kurucu
Bir Kotlin sınıfı, birincil kurucusunu sınıf adından hemen sonra parantez içinde bildirir. Yöntem gövdesi yoktur; yalnızca bir parametre listesi bulunur.
En Basit Sınıf
Değiştiricileri olmayan birincil kurucu, sınıf adından sonra görünmez.
class Greeter(val name: String) {
fun greet() = "Hello, $name!"
}
fun main() {
println(Greeter("Ada").greet())
}Özellik Parametreleri
Bir kurucu parametresinin başına val veya var ekleyerek onu tek adımda sınıf özelliğine dönüştürebilirsiniz.
class Person(val name: String, var age: Int)
fun main() {
val p = Person("Bob", 30)
println("${p.name} is ${p.age}")
p.age = 31
println("Now ${p.age}")
}val/var Olmadan Parametreler
val/var içermeyen kurucu parametreleri kurucuya özeldir; bunlar init bloklarında veya özellik başlatıcılarında kullanılabilir, ancak daha sonra erişilemez.
class Logger(prefix: String) {
val msg = "$prefix: ready"
}
fun main() {
val l = Logger("[INFO]")
println(l.msg)
// l.prefix // ERROR — not a property
}Varsayılan Parametre Değerleri
Aşırı yükleme için gereken gereksiz kodu önlemek amacıyla kurucu parametreleri için varsayılan değerler sağlayın.
class User(
val name: String,
val age: Int = 0,
val email: String = ""
)
fun main() {
println(User("Ana").age) // 0
println(User("Ben", 25).email) // ""
println(User("Cal", 30, "c@x.io").email)
}Adlandırılmış Argümanlar
Konumsal sıralamayı atlayıp çağrı noktasında parametreleri adlandırın; bu, özellikle varsayılan değerlerle kullanışlıdır.
class HttpClient(
val baseUrl: String,
val timeoutMs: Int = 5000,
val retries: Int = 3
)
fun main() {
val c = HttpClient(
baseUrl = "https://api.example.com",
retries = 5
)
println("retries=${c.retries} timeout=${c.timeoutMs}")
}Kurucunun Görünürlüğü
Dışarıdan örnek oluşturulmasını engellemek için private constructor kullanın; bu, fabrika yöntemleriyle birlikte sıkça kullanılır.
class Singleton private constructor() {
companion object {
val instance = Singleton()
}
}
fun main() {
val s = Singleton.instance
println(s)
}İkincil Kurucular
constructor anahtar sözcüğüyle ek kurucular ekleyin. Bu kurucular this(...) ile birincil kurucuya yetki devretmelidir.
class Point(val x: Int, val y: Int) {
constructor(value: Int) : this(value, value)
}
fun main() {
println("${Point(3).x}, ${Point(3).y}") // 3, 3
}Görünürlüklü Kurucu
Her kurucu için farklı görünürlükleri bir arada kullanabilirsiniz; bu, kitaplıklar için kullanışlıdır.
class Lib internal constructor(val key: String) {
companion object {
fun create(key: String) = Lib(key)
}
}
fun main() {
println(Lib.create("abc").key)
}Başlatma Bloğunun Özeti
Oluşturma sırasında çalışması gereken kodlar init { } bloğuna konur. Birden çok başlatma bloğu kaynak kodundaki sırayla çalışır.
class Validator(val value: String) {
init { require(value.isNotBlank()) { "value cannot be blank" } }
}
fun main() {
println(Validator("ok").value)
// Validator("") // throws IllegalArgumentException
}Özellikleri ve Mantığı Birleştirme
Özellik bildirimleri, ikincil kurucular ve başlatma blokları esnek bir başlatma işlem hattı oluşturur.
class Account(
val owner: String,
initialBalance: Double = 0.0
) {
var balance: Double = initialBalance
private set
init {
require(initialBalance >= 0) { "balance must be non-negative" }
}
fun deposit(amount: Double) { balance += amount }
}
fun main() {
val a = Account("Alice", 100.0)
a.deposit(50.0)
println("${a.owner}: ${a.balance}") // Alice: 150.0
}Hızlı Kontrol
Birincil kurucu parametresinde kullanılan val anahtar sözcüğü ne yapar?
Özet
Birincil kurucu sınıf başlığında bulunur. Özellik parametreleri için val/var kullanın; yalnız parametreler kurucuya özeldir. Aşırı yüklemeleri azaltmak için varsayılan değerler ekleyin ve kurulum mantığını init bloklarında çalıştırın. İkincil kurucular this(...) aracılığıyla yetki devreder.
Sıkça Sorulan Sorular
“Birincil Yapıcı ve Özellik Parametreleri” dersi ücretsiz mi?
Evet — “Birincil Yapıcı ve Özellik Parametreleri” 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.
“Birincil Yapıcı ve Özellik Parametreleri” dersinde ne öğreneceğim?
Birincil yapıcılarla sınıflar tanımlayın ve özellikleri satır içinde bildirin. 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.
“Birincil Yapıcı ve Özellik Parametreleri” 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
- Birincil Yapıcı ve Özellik Parametreleri
- init Blokları ve Başlatma Sırası
- field ile Özel Get ve Set İşlevleri
- lateinit ve Tembel Başlatma