Объекты Companion являются альтернативой ключевому слову java static, и вы можете сделать класс или метод статическими, объявив их как объекты Companion. Вам не нужно квалифицировать объекты-компаньоны с именем класса, если вы вызываете их из одного класса.
Например:
class SomeClass() {
val id: Int
init {
id = nextId++
}
private companion object {
var nextId = 1
}
}
fun main(args: Array<String>) {
repeat(2) {
println(SomeClass().id)
}
}