¿Qué objetos hay en Kotlin y cómo se compilan?
sobes.tech AI
Respuesta de la IA
Los objetos en Kotlin se utilizan para crear singletons. Se declaran con la palabra clave object.
object Singleton {
fun doSomething() {
println("¡Hola desde el singleton!")
}
}
Al compilar, el objeto Kotlin Singleton se transforma en una clase Java Singleton con un campo estático privado INSTANCE y un bloque de inicialización estático.
// Ejemplo de código Java generado
public final class Singleton {
public static final Singleton INSTANCE; // Campo estático para la única instancia
public final void doSomething() { // Método del objeto
System.out.println("¡Hola desde el singleton!");
}
private Singleton() { // Constructor privado para evitar crear otras instancias desde fuera
}
static { // Bloque estático de inicialización
INSTANCE = new Singleton(); // Creación de la única instancia
}
}
Al llamar al método del objeto Singleton.doSomething() en Kotlin, el compilador genera una llamada al método estático Singleton.INSTANCE.doSomething() en Java.
Además de los objetos normales, en Kotlin existen:
-
Objeto compañero (
companion object): Se usa para definir miembros estáticos dentro de una clase. Se accede a ellos mediante el nombre de la clase. Cada clase puede tener como máximo un objeto compañero.class MyClass { companion object { const val MY_CONSTANT = "some value" fun create(): MyClass { return MyClass() } } }Se compila en miembros estáticos de la clase en Java.
-
Expresión de objeto (
object expression): Se usa para crear objetos anónimos (como clases anónimas en Java).val listener = object : MyInterface { override fun onClick() { println("¡Clickeado!") } }Se compila en una clase anónima en Java.