Освой Kotlin играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Ключевое слово object

Шаблон "Одиночка"

Ключевое слово object одновременно объявляет класс и создаёт его экземпляр.

С его помощью можно реализовать шаблон "Одиночка". Например, класс для фонда заработной платы (у предприятий только один фонд), класс для печати (обработка заданий для принтера), Wi-Fi (общие настройки связи) и т.д.

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

Ещё можно использовать для записи объекта-выражения в качестве замены анонимного внутреннего класса.

Шаблон "Одиночка"

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


object One {
	val cats = arrayListOf<Cat>()
	
	fun callCat() {
		for (cat in cats) {
			...
		}
	}
}

Вы можете задавать свойства, методы, блоки инициализации, но не можете создавать конструкторы (как основные, так и вторичные).

Обращаться к методам и свойствам класса можно через имя объекта.


One.cats.add(Cat(...))
One.callCat()

Объекты также можно объявлять внутри существующего класса.

Объекты-выражения

Ключевое слово object можно использовать не только для объявления одиночек, но и для создания анонимных объектов, которые являются заменой анонимных внутренних классов в Java.

Реклама