Объявляем глобальную переменную класса используя
companion object:
Kotlin
class MyInfo {
companion object {
var booksCount: Int = 0 // объявляем глобальную переменную класса
var filmsCount: Int = 0 // объявляем глобальную переменную класса
}
}
Можно использовать
var и
val.
Глобальная переменная (в других языках программирования называют статической переменной).
Глобальная переменная означает, что эта переменная сама создается в памяти только 1 раз при запуске программы и уничтажается при остановки программы.
Глобальная переменная доступна везде (можно использовать в любом классе)
Kotlin
class MyInfo {
companion object {
var booksCount: Int = 0 // объявляем глобальную переменную класса
var filmsCount: Int = 0 // объявляем глобальную переменную класса
}
}
class MyBook(bookName: String) {
init {
MyInfo.booksCount++ // используем глобальную переменную
}
}
class MyFilm(bookName: String) {
init {
MyInfo.filmsCount++ // используем глобальную переменную
}
}
fun main() {
var book1 = MyBook("The three musketeers")
var book2 = MyBook("House near lake")
var film1 = MyFilm("Matrix")
// используем глобальную переменную
println(MyInfo.booksCount) // 2
// используем глобальную переменную
println(MyInfo.filmsCount) // 1
}
На заметку!
Внутри
companion object можно использовать и методы:
Kotlin
companion object {
var booksCount: Int = 0
var filmsCount: Int = 0
fun showMy() {
println("books created: $booksCount, films created: $filmsCount")
}
}