Sobes.tech
Назад к вопросам
Junior — Middle
69

Можно ли перечислить основные виды объектов в Kotlin и объяснить их различия?

Ответ от нейросети

sobes.tech AI

В Kotlin основные виды объектов и их различия:

  • Классы (class) — шаблоны для создания объектов с состоянием и поведением. Могут иметь конструкторы, свойства, методы.

  • Объекты (object) — синглтоны, то есть единственный экземпляр класса, создаваемый автоматически. Используются для хранения глобального состояния или утилит.

  • Компаньоны (companion object) — объект внутри класса, который позволяет создавать статические члены (аналог static в Java).

  • data class — классы, предназначенные для хранения данных. Автоматически генерируют методы equals, hashCode, toString, copy.

  • sealed class — ограниченный набор подклассов, полезен для выражения иерархий с фиксированным числом вариантов.

  • enum class — перечисления, набор именованных констант.

Пример объекта и компаньона:

object Singleton {
    val name = "Я синглтон"
}

class MyClass {
    companion object {
        fun create() = MyClass()
    }
}

Объекты создаются один раз и используются как глобальные экземпляры, в то время как классы могут иметь множество экземпляров.