Введение в object и companion в Kotlin
В Kotlin слово object участвует в нескольких
разных записях. Object declaration создаёт
именованный объект с методами и свойствами на верхнем
уровне файла. К нему обращаются по имени, без
вызова конструктора и без отдельной переменной
«экземпляр» - один общий объект на программу.
Общие члены типа складывают в companion object
внутри class. К ним обращаются по имени класса,
как ClassName.member, без переменной
с экземпляром.
Object expression - анонимный объект «здесь
и сейчас»: выражение object { ... } или
object : Base { ... } создаёт одноразовый
объект, часто для переопределения метода
open-класса или для локального набора команд.
Раздел опирается на основы классов и объектов:
свойства, методы, private, конструкторы и
open для переопределения. Разберём singleton
через object, фабрики и константы в companion,
object expression и практику на строках, числах и
коллекциях.
Дальше каждая форма разбирается отдельно: сначала
именованный object, затем companion и
создание экземпляров через него, в конце -
object expression и практика.