Warum verwenden wir "Begleitobjekt" als Ersatz für statische Java-Felder in Kotlin?

Was ist die beabsichtigte Bedeutung von "Begleitobjekt"? Bisher habe ich es nur verwendet, um Javas @ zu ersetzstatic wenn ich es brauche.

Ich bin verwechselt mit:

Warum heißt es "Begleiter"? Bedeutet dies, dass zum Erstellen mehrererstatisc Eigenschaften, ich muss es zusammen in @ gruppiercompanion object BlockUm sofort eine Singleton-Instanz zu erstellen, die für eine Klasse bestimmt ist, schreibe ich oft

:

companion object {
    val singleton by lazy { ... }
}

Das scheint eine unidiomatische Methode zu sein. Was ist der bessere Weg?