English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Oggetti companion (Companion) in Kotlin

In questo articolo, imparerai a creare e utilizzare gli oggetti companion nei programmi Kotlin con esempi.

Prima di discutere dell'oggetto companion, diamo un esempio per accedere ai membri della classe.

class Person {
    fun callMe() = println("I'm called.")
{}
fun main(args: Array<String>) {
    val p1 = Person()
    
    //Chiamare il metodo callMe() utilizzando l'oggetto p1
    p1.callMe()    
{}

Qui abbiamo creato un oggetto p1 della classe Person per chiamare il metodo callMe ().

Ma in Kotlin, puoi anche chiamare il metodo callMe () utilizzando il nome della classe (cioè nel presente esempio Person). Per fare questo, devi utilizzare la parola chiave companion per etichettareDichiarazione dell'oggettoDichiarazione dell'oggetto per creare un oggetto companion.

Esempio: oggetto companion

class Person {
    companion object Test {
        fun callMe() = println("I'm called.")
    {}
{}
fun main(args: Array<String>) {
    Person.callMe()
{}

Quando si esegue il programma, l'output è:

Mi chiamo così.

Nel programma, l'oggetto Test viene dichiarato con la parola chiave companion per creare un oggetto companion. Pertanto, è possibile chiamare me stesso() utilizzando il nome della classe seguente per chiamare il metodo:

Person.callMe()

Il nome dell'oggetto companion è opzionale e può essere omesso.

class Person {
    
    // Il nome dell'oggetto companion è opzionale e può essere omesso
    companion object {
        fun callMe() = println("I'm called.")
    {}
{}
fun main(args: Array<String>) {
    Person.callMe()
{}

Se sei familiare con Java, potresti associare gli oggetti companion ai metodi statici (nonostante il loro funzionamento interno sia completamente diverso)

Gli oggetti companion possono accedere ai membri privati della classe. Pertanto, possono essere utilizzati per implementare il modello di pattern factory.