В чем разница между class и object в Kotlin

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

Ответ

class — это шаблон для создания объектов (экземпляров). Он определяет свойства и методы, но не существует в памяти до создания экземпляра.

object — это синглтон, который создается сразу при первом обращении и существует в единственном экземпляре. Используется, когда нужен только один экземпляр класса.

Пример:

class Car(val model: String) { 
    fun drive() = println("Driving $model")
}

object Logger {
    fun log(message: String) = println("LOG: $message")
}

// Использование:
val car = Car("Tesla") // создаем экземпляр
car.drive() 

Logger.log("Started") // объект уже существует