Object vs class
- Kotlin kursu
- Orta seviye
- Ders 34/116
- 5 dk
object ve class farkını öğrenirsin.
object ve class farkı
object ve class farklı ihtiyaçlar için kullanılır. object tek örnekli singleton tanımlar; örnek oluşturulamaz, adıyla doğrudan kullanılır. class ise birden çok örnek oluşturulabilen bir şablonudur.
Örnek: object Config { val version = "1.0" } uygulama boyunca tek bir Config vardır. class User(val name: String) ise User("Ayşe"), User("Mert") gibi birden çok örnek oluşturur. Singleton gerekiyorsa object, birden çok örnek gerekiyorsa class kullanılır. Yanlış seçim paylaşılan durum kirliliğine yol açar.
Birlikte kullanım
Bir uygulamada object ve class genellikle birlikte kullanılır. class örnekleri temsil ederken, object paylaşılan yardımcıları ve yapılandırmayı taşır.
Örnek: object Config { val version = "1.0" }; class User(val name: String). User("Ayşe") ile her kullanıcı için ayrı örnek oluşturulurken, Config.version tüm uygulama için tek değer taşır. Bu ayrım, durum yönetimini netleştirir: örnek verisi class'ta, global veri object'te tutulur.
Uygulama object Config ve class User birlikte
Config adında bir object tanımla; val version = "1.0" özelliği olsun. User(val name: String) adında bir sınıf tanımla. main içinde User("Ayşe").name ve Config.version değerlerini ayrı satırlarda println ile yazdır.
Başlangıç kodu
// Config nesnesi tanımı
// User sınıfı tanımı
// main'de ikisini de yazdırÖrnek çözüm
object Config {
val version = "1.0"
}
class User(val name: String)
fun main() {
println(User("Ayşe").name)
println(Config.version)
}Beklenen çıktı
Ayşe 1.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 object ve class farkını eşle
| Kavram | Anlamı |
|---|---|
object Config |
Tek örnek |
class User |
Çok örnek |
User("Ayşe") |
Yeni örnek |
Config.version |
Adla erişim |
2 Uygulama boyunca tek bir örneğin korunması gereken yapılandırma için hangisi kullanılır?
- abstract class
- class
- object Doğru cevap
- interface
Açıklama: object tek örnek sağlar; yapılandırma için uygundur.
3 object ve class birlikte tamamla
object Config {
val version = "1.0"
}
class ____(val name: String)
object Config {
val version = "1.0"
}
class User(val name: String)
Açıklama: class User çok örnekli, object Config tek örneklidir.