Object expressions (анонимные объекты) используются для создания объектов анонимных классов. Они полезны для реализации одноразовых интерфейсов или наследования от классов в одном экземпляре. Sintaksis object : <тип(ы)>.
Object declarations (объявления объектов) создают singleton. Это класс с единственным экземпляром, который доступен глобально по его имени. Sintaksis object <имя>.
Сравнительная таблица:
| Особенность | Object expressions | Object declarations |
|---|---|---|
| Назначение | Создание анонимного объекта | Создание singleton |
| Использование | Локальное, внутри выражений или функций | Общедоступное, по имени объекта |
| Создание экземпляров | При каждом использовании выражения | Один экземпляр при первом доступе |
| Именование | Анонимный | Именованный |
| Применение | Одноразовые слушатели событий, адаптеры | Утилиты, конфигурации, хранилища состояния |
Пример object expression:
kotlin
Пример object declaration:
kotlin