CodeBlanks Logo Icon CodeBlanks

Object vs class

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

Main.kt
// Config nesnesi tanımı
// User sınıfı tanımı
// main'de ikisini de yazdır

Örnek çözüm

Main.kt
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

Soru
object Config {
    val version = "1.0"
}

class ____(val name: String)
Cevap
object Config {
    val version = "1.0"
}

class User(val name: String)

Açıklama: class User çok örnekli, object Config tek örneklidir.

Orta seviye bölümündeki tüm dersler