¿Qué es un objeto compañero Kotlin?
¿Qué es un objeto compañero Kotlin?

Video: ¿Qué es un objeto compañero Kotlin?

Video: ¿Qué es un objeto compañero Kotlin?
Video: Aprende a usar los Companion Objects en Kotlin 2024, Abril
Anonim

Kotlin tiene "clase" para las clases que tienen varias instancias, y " objeto ”Para singletons. Creo que Scala hace la misma distinción. " objeto compañero "Es una extensión del concepto de" objeto ": un objeto eso es un compañero a una clase en particular y, por lo tanto, tiene acceso a sus métodos y propiedades de nivel privado.

Por tanto, ¿qué es un objeto compañero?

Un objeto con el mismo nombre que una clase se llama objeto compañero . Por el contrario, la clase es la compañero del objeto clase. A compañero clase o objeto puede acceder a los miembros privados de su compañero . Utilizar una objeto compañero para métodos y valores que no son específicos de instancias del compañero clase.

En segundo lugar, ¿cuál es la diferencia entre el bloque de objetos y el bloque de código de objeto complementario en Kotlin? A Objeto complementario se inicializa cuando se carga la clase (normalmente la primera vez que se hace referencia a ella por otro código que se está ejecutando) mientras que Objeto las declaraciones se inicializan de forma diferida cuando se accede a ellas por primera vez.

Así que, ¿cómo accedes al objeto complementario en Kotlin?

Objetos complementarios y solo se puede acceder a sus miembros a través del nombre de la clase contenedora, no a través de instancias de la clase contenedora. Kotlin no admite funciones de nivel de clase que también se pueden anular en subclases (como @classmethod en Python).

¿Cuál es la diferencia entre objeto y clase en Kotlin?

Kotlin introduce el concepto de objeto además de eso. Mientras que un clase describe estructuras que se pueden instanciar como y cuando se desee y permite tantas instancias como sea necesario, un objeto en su lugar, representa una única instancia estática, y nunca puede tener más ni menos que esta única instancia.

Recomendado: