Можно ли перечислить основные виды объектов в 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()
}
}
Объекты создаются один раз и используются как глобальные экземпляры, в то время как классы могут иметь множество экземпляров.