1. Создайте объект-компаньон

Иногда требуется функция или свойство-синглтон, связанное с классом, а не с экземпляром. В других языках, таких как Java, для этой цели может использоваться staticчлен класса. Kotlin предлагает companion objectдля этой цели соответствующий объект. Этот объект-компаньон не является экземпляром и не предназначен для самостоятельного использования.

  1. Попробуйте Decoration.ktиспользовать пример вспомогательного объекта.
class Choice {
   companion object {
       var name: String = "lyric"
       fun showDescription(name:String) = println("My favorite $name")
   }
}

fun main() {
   println(Choice.name)
   Choice.showDescription("pick")
   Choice.showDescription("selection")
}
⇒ 
lyric
My favorite pick
My favorite selection

Объекты-компаньоны — это настоящие объекты Kotlin. Они могут реализовывать интерфейсы и расширять классы, что делает их очень функциональными, при этом экономя память благодаря использованию синглтона.

Основное различие между объектами-компаньонами и обычными объектами заключается в следующем:

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

Есть и другие нюансы, но на данный момент вам достаточно знать только то, как обернуть константы в классах в сопутствующий объект.


Last modified: Sunday, 5 April 2026, 2:14 PM