Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: object, singleton, companion object, anonymous class

Расскажи про анонимные классы и объекты, object и companion object

Этот вопрос проверяет знание ключевых понятий и синтаксиса Kotlin, связанных с анонимными классами, объектами и их применением через ключевые слова object и companion object.

Короткий ответ

Анонимные классы в Kotlin создаются с использованием ключевого слова object и не требуют явного объявления. Они реализуют интерфейсы или наследуют классы и могут использоваться для одноразовых целей. object в Kotlin также используется для объявления объектов-синглтонов (object declaration) и для создания объектов внутри классов (companion object), которые действуют как статические поля.

Длинный ответ

В Kotlin ключевое слово object используется в различных контекстах:

Анонимные объекты (anonymous classes): Это объекты, создаваемые с помощью ключевого слова object и сразу реализующие интерфейсы или наследующие классы. Они не имеют имени и полезны для одноразового использования. Пример:

val obj = object : SuperClassOrInterface() {
    	// implementation here
}

Анонимные объекты полезны, когда необходимо быстро создать объект с определенным поведением, не требуя отдельного класса.

Объявление объекта (object declaration): Когда object используется без конструктора, это создает объект-синглтон, т.е. единственный экземпляр класса, который инициализируется при первом доступе:

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

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

Companion object: Это объект, объявленный внутри класса. Он выполняет роль статического поля, и можно обращаться к его методам через имя класса, без необходимости указывать имя объекта. Это аналог статических методов в Java:

class MyClass {
    	companion object {
        	fun create() { ... }
    	}
}
val instance = MyClass.create()

Companion object инициализируется до создания экземпляра класса и доступен только одному экземпляру класса.

Вывод:
Ключевое слово object в Kotlin используется для создания синглтонов и анонимных объектов, а companion object позволяет добавлять статические методы и свойства в класс. Это упрощает работу с объектами, где требуется единственный экземпляр или статическая функциональность.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Kotlin

    Kotlin

Ключевые слова

#object

#singleton

#companion object

#anonymous class

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.