Шаг 179.
Основы Kotlin.
Объекты. Анонимные объекты

    На этом шаге мы рассмотрим понятие такого объекта и варианты его использования.

    Объявление классов с использованием ключевого слова class полезно тем, что позволяет вводить в код новые понятия. Определив класс с именем Room, вы сообщили, что в NyetHack существуют комнаты. А определив подкласс TownSquare, вы указали, что есть особая разновидность комнат - городские площади.

    Но иногда объявление нового именованного класса выглядит излишеством. Например, в некоторых случаях нужен экземпляр класса, немного отличающегося от уже существующего, и этот экземпляр будет использован лишь однажды. Более того, он будет настолько временным, что ему даже имя не нужно.

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

val abandonedTownSquare = object : TownSquare() {
  override fun load() = "You anticipate applause, but no one is here..."
}

    Этот анонимный объект - подкласс TownSquare, где никто вас не приветствует. В теле этого объявления можно переопределить свойства и функции, объявленные в TownSquare, а также добавить новые свойства и функции, чтобы определить данные и поведение анонимного класса.

    Этот класс соблюдает правила ключевого слова object, в том смысле, что одновременно может существовать только один экземпляр, но его область видимости гораздо уже области видимости именованного синглтона. Слабой стороной анонимного класса является его зависимость от места объявления. Если анонимный класс объявлен на уровне файла, он инициализируется немедленно, если внутри другого класса - одновременно с этим классом.

    На следующем шаге мы рассмотрим вспомогательные объекты.




Предыдущий шаг Содержание Следующий шаг