Освой программирование играючи

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

Шкодим

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

companion

Классы в Kotlin не могут иметь статических членов, ключевое слово static не входит в состав языка.

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


class Something{
	companion object {
		fun bar() {
			println("Companion object called")
		}
	}
}

Something.bar() // Companion object called

Объект-компаньон имеет доступ ко всем членам класса и подходит для реализации шаблона "Фабрика".

Можно дать идентификатор компаньону.


companion object MyObject { ...}

Something.MyObject.bar()
Реклама