Что такое ключевое слово object в Kotlin

«Что такое ключевое слово object в Kotlin» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ключевое слово object в Kotlin используется для создания синглтона (объекта с единственным экземпляром) или анонимного объекта (объекта без имени).

1. Singleton:

object DatabaseHelper {
    fun connect() { /* ... */ }
}

Использование:

DatabaseHelper.connect() // Доступ к единственному экземпляру

2. Анонимный объект (замена Java-анонимных классов):

val listener = object : View.OnClickListener {
    override fun onClick(v: View?) { /* ... */ }
}

3. Companion Object:
Аналог статических методов/полей в Java:

class MyClass {
    companion object {
        const val TAG = "MyClass"
    }
}

Использование: MyClass.TAG.

Объекты инициализируются лениво (при первом обращении) и потокобезопасны.