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

Objetos acompañantes (Companion) en Kotlin

En este artículo, aprenderá a crear y usar objetos compañeros en programas Kotlin con ejemplos.

Antes de discutir sobre los objetos compañeros, veamos un ejemplo para acceder a los miembros de la clase.

class Person {
    fun callMe() = println("I'm called.")
{}
fun main(args: Array<String>) {
    val p1 = Person()
    
    //Usar el objeto p1Llamar al método callMe()
    p1.callMe()    
{}

Aquí, creamos un objeto de la clase Person p1 para llamar al método callMe ()

Pero, en Kotlin, también puede llamar al método callMe () utilizando el nombre de la clase (es decir, Person en este ejemplo) mediante la marca de la palabra clave companion. Para hacerlo, necesita marcar con la palabra clave companionDeclaración de objetoLa declaración de objeto se utiliza para crear un objeto compañero.

Ejemplo: objeto compañero

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

Al ejecutar el programa, la salida es:

Me llaman.

En el programa, el objeto Test se declara con la palabra clave companion para crear un objeto compañero. Por lo tanto, se puede llamar a callMe() utilizando el nombre de la clase siguiente:

Person.callMe()

El nombre del objeto acompañante es opcional y se puede omitir.

class Person {
    
    //Se omitió el nombre del objeto acompañante
    companion object {
        fun callMe() = println("I'm called.")
    {}
{}
fun main(args: Array<String>) {
    Person.callMe()
{}

Si está familiarizado con Java, puede asociar los objetos acompañantes con métodos estáticos (aunque su funcionamiento interno es completamente diferente)

Los objetos acompañantes pueden acceder a los miembros privados de la clase. Por lo tanto, se pueden utilizar para implementar el patrón de método fábrica.