Освой Kotlin играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Ключевое слово object одновременно объявляет класс и создаёт его экземпляр.
С его помощью можно реализовать шаблон "Одиночка". Например, класс для фонда заработной платы (у предприятий только один фонд), класс для печати (обработка заданий для принтера), Wi-Fi (общие настройки связи) и т.д.
Также можно реализовать объект-компаньон, содержащий лишь фабричные методы, а также методы, связанные с классом, но не требующие обращения к его экземпляру. К членам такого объекта можно обращаться просто по имени класса.
Ещё можно использовать для записи объекта-выражения в качестве замены анонимного внутреннего класса.
Иногда требуется класс, который должен существовать в одном экземпляре. В Kotlin имеется специальный синтаксис объявления объекта для подобных случаев.
object One {
val cats = arrayListOf<Cat>()
fun callCat() {
for (cat in cats) {
...
}
}
}
Вы можете задавать свойства, методы, блоки инициализации, но не можете создавать конструкторы (как основные, так и вторичные).
Обращаться к методам и свойствам класса можно через имя объекта.
One.cats.add(Cat(...))
One.callCat()
Объекты также можно объявлять внутри существующего класса.
Ключевое слово object можно использовать не только для объявления одиночек, но и для создания анонимных объектов, которые являются заменой анонимных внутренних классов в Java.