object Bildirimi: Kotlin Singleton'ları
object ile singleton'lar oluşturun ve yaşam döngülerini anlayın.
object Bildirimi: Kotlin Singleton'ları, 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.
Singleton olarak object
Bir object bildirimi, tek satır kodla tek bir örnek (iş parçacığı açısından güvenli ve lazy başlatılan bir singleton) oluşturur.
Singleton Tanımlama
Durum ve yöntemlere sahip bir singleton tanımlamak için object Name { ... } kullanın.
object Logger {
fun log(msg: String) = println("[LOG] $msg")
}
fun main() {
Logger.log("App started")
Logger.log("User signed in")
}Singleton Durumu
Singleton'lar değiştirilebilir durum tutabilir; bu duruma her yerden erişilebilir ve durum genel olarak paylaşılır.
object Counter {
var count = 0
fun increment() { count++ }
}
fun main() {
Counter.increment()
Counter.increment()
Counter.increment()
println(Counter.count) // 3
}Lazy Başlatma
Tek örnek, ona ilk kez erişildiğinde oluşturulur; daha önce oluşturulmaz. JVM bunun iş parçacığı açısından güvenli olduğunu garanti eder.
object Heavy {
init { println("Initializing Heavy...") }
fun work() = "done"
}
fun main() {
println("Before access")
println(Heavy.work()) // triggers init now
println(Heavy.work()) // no init again
}Arayüzleri Uygulama
Singleton'lar, geri çağırmalar ve stratejiler için kullanışlı olan arayüzleri uygulayabilir.
interface Greeter { fun greet(name: String): String }
object EnglishGreeter : Greeter {
override fun greet(name: String) = "Hello, $name!"
}
fun main() {
println(EnglishGreeter.greet("Ada"))
}Sınıf Genişletme
object'ler açık sınıflardan da kalıtım alabilir.
open class Animal(val sound: String) {
fun makeSound() = "The animal says $sound"
}
object Cat : Animal("Meow")
fun main() {
println(Cat.makeSound())
}Uygulamalı: Yapılandırma
Singleton'lar, başlangıçtan sonra değişmeyen uygulama genelindeki yapılandırmalar için idealdir.
object AppConfig {
val apiUrl = "https://api.example.com"
val timeout = 5000
val version = "1.0.0"
}
fun main() {
println("v${AppConfig.version} -> ${AppConfig.apiUrl}")
}Uygulamalı: Yardımcı İşlevler
İlişkili durum bilgisi tutmayan yardımcıları bir object içinde ad alanlı, statik benzeri yöntemler olarak gruplayın.
object StringUtils {
fun reverse(s: String) = s.reversed()
fun capitalize(s: String) = s.replaceFirstChar { it.uppercase() }
}
fun main() {
println(StringUtils.reverse("Kotlin"))
println(StringUtils.capitalize("hello"))
}Eşitlik ve Kimlik
Yalnızca bir örnek olduğundan, aynı nesne başvurusu için === her zaman true döndürür.
object MySingleton
fun main() {
val a = MySingleton
val b = MySingleton
println(a === b) // true
}object ve class Karşılaştırması
Normal bir class örneklenmeyi gerektirir. Bir object zaten örneğin kendisidir; oluşturucu çağrısı yapılmaz.
class Service { fun ping() = "pong (class)" }
object SingletonService { fun ping() = "pong (object)" }
fun main() {
val s = Service() // instance per call
println(s.ping())
println(SingletonService.ping()) // no instantiation
}İş Parçacığı Güvenliği
Singleton örneğinin oluşturulması, JVM'nin sınıf yükleme garantileri sayesinde iş parçacığı açısından güvenlidir. İçine eklediğiniz değiştirilebilir durumun sorumluluğu size aittir.
object SharedCounter {
@Volatile var count = 0
@Synchronized fun inc() { count++ }
}
fun main() {
repeat(1000) { SharedCounter.inc() }
println(SharedCounter.count) // 1000
}Hızlı Kontrol
Bir Kotlin object bildiriminin kaç örneği vardır?
Özet
object Name { ... }; durum, yöntemler, arayüzler ve kalıtım içeren, iş parçacığı açısından güvenli bir lazy singleton tanımlar. Yapılandırma, yardımcı grupları ve durum bilgisi tutmayan hizmetler için object'leri kullanın.
Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“object Bildirimi: Kotlin Singleton'ları” dersi ücretsiz mi?
Evet — “object Bildirimi: Kotlin Singleton'ları” 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.
“object Bildirimi: Kotlin Singleton'ları” dersinde ne öğreneceğim?
object ile singleton'lar oluşturun ve yaşam döngülerini anlayın. 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.
“object Bildirimi: Kotlin Singleton'ları” 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
- object Bildirimi: Kotlin Singleton'ları
- companion object: Kotlin'de Statik Benzeri Üyeler
- Adsız Nesneler ve Nesne İfadeleri
- companion object ile Fabrika Yöntemleri