Все виды использования object

Объявление объекта (Object Declaration)

object Singleton {
    fun doSomething() {
        println("Singleton object is doing something")
    }
}

Анонимные классы

val obj = object : SomeInterface {
    override fun doSomething() {
        println("Doing something anonymously")
    }
}

Объекты выражений
Это создает объект, который не наследуется от какого-либо класса или интерфейса. Используется для создания локальных объектов, когда не требуется наследование.

val obj = object {
    val x = 10
    val y = 20
}

Объектные выражения в качестве аргументов (Object Expressions as Arguments)

fun someFunction(callback: SomeInterface) {
    // implementation
}

someFunction(object : SomeInterface {
    override fun doSomething() {
        println("Doing something in someFunction")
    }
})