Какие знаешь типы object в Kotlin

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

Ответ

  • Object Declaration – синглтон, создаётся при первом доступе.
    object Singleton {
        fun doSomething() {}
    }
  • Companion Object – аналог статики, связан с классом.
    class MyClass {
        companion object {
            const val TAG = "MyClass"
        }
    }
  • Object Expression – анонимный объект (как Java-анонимный класс).
    val listener = object : View.OnClickListener {
        override fun onClick(v: View?) {}
    }
  • Data Object (Kotlin 1.9+) – объект для sealed иерархий без данных.
    sealed interface Result
    data class Success(val data: String) : Result
    data object Loading : Result