object — مفرد (Singleton)
نسخة واحدة فقط في كامل البرنامج:
object Database {
val url = "localhost"
fun connect() = println("اتصال بـ $url")
}
Database.connect() // بلا new — نسخة واحدة دائمًا
companion object — بديل static
Kotlin لا تملك static؛ تستخدم companion object لأعضاء على مستوى الصنف:
class User(val name: String) {
companion object {
const val MAX = 100
fun create(name: String) = User(name)
}
}
val u = User.create("براء") // عبر اسم الصنف
println(User.MAX)
كائن مجهول (Anonymous object)
val listener = object : Clickable {
override fun click() = println("نُقر")
}
💡
objectللمفردات، وcompanion objectللدوال/الثوابت المرتبطة بالصنف لا بالكائن.
🎯 التالي: الأصناف المختومة والتعدادات.