Назад к вопросам
Middle
69
questionbank
Как в Kotlin создать статическое поле, метод или класс?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Kotlin нет нативного понятия static. Вместо этого используются:
companion object: Для создания статических полей и методов, связанных с классом, но не с конкретным экземпляром.- Объявления верхнего уровня (Top-level declarations): Для создания статических полей и методов, не привязанных ни к какому классу.
object: Для создания объектов-одиночек (синглтонов), которые ведут себя как статические классы с полями и методами.
Примеры:
Companion object:
class MyClass {
companion object {
const val MY_CONSTANT = "Hello" // Статическое поле (константа времени компиляции)
var myVariable = 0 // Статическое поле
fun myStaticMethod() { // Статический метод
println("This is a static method.")
}
}
}
Доступ: MyClass.MY_CONSTANT, MyClass.myVariable, MyClass.myStaticMethod().
Top-level declarations:
// MyFile.kt
const val TOP_LEVEL_CONSTANT = "World" // Статическое поле (константа)
var topLevelVariable = 1 // Статическое поле
fun topLevelMethod() { // Статический метод
println("This is a top-level method.")
}
Доступ: TOP_LEVEL_CONSTANT, topLevelVariable, topLevelMethod() (импортируются из файла).
Object (Singleton):
object MySingleton {
const val SINGLETON_CONSTANT = "Singleton" // Статическое поле (константа)
var singletonVariable = 2 // Статическое поле
fun singletonMethod() { // Статический метод
println("This is a singleton method.")
}
}
Доступ: MySingleton.SINGLETON_CONSTANT, MySingleton.singletonVariable, MySingleton.singletonMethod(). MySingleton сам по себе ведет себя как статический класс.