Constructor privado de Kotlin

Kailash Vaviya 20 junio 2023
Constructor privado de Kotlin

Podemos definir un constructor primario en programación Java como privado. Entonces podemos acceder al constructor usando un método público estático. Sin embargo, ¿es eso posible en Kotlin?

Kotlin también permite la creación de constructores privados. ¿Cómo? Eso lo veremos en este artículo.

Constructor privado de Kotlin

Los constructores son funciones miembro especiales de una clase de Kotlin. Se invocan cuando creamos e iniciamos un objeto.

Los constructores privados de Kotlin son útiles para habilitar la visibilidad personalizada en la clase; también ocultará el constructor principal de la clase de Kotlin. Por ejemplo, supongamos que queremos evitar la creación de un objeto no deseado para la eficiencia de la memoria. Podemos usar constructores privados para lograr eso.

Podemos definir un constructor de Kotlin como privado usando la palabra clave del modificador de acceso privado y un objeto complementario. Los miembros de la clase pueden acceder a los miembros privados de los objetos complementarios.

La sintaxis para declarar un constructor como privado es:

class class_Name private constructor()

Trabajo de Constructores privados

Los constructores privados funcionan haciendo que el constructor principal de su clase sea privado. Evita que otras clases creen objetos utilizando el constructor private.

Al crear un constructor privado, es mejor utilizar un método estático. La razón es que los métodos estáticos pueden ejecutarse sin inicialización de objetos.

Ahora, los constructores privados permitirán crear e inicializar objetos de la misma clase. Sin embargo, cuando intenta inicializar objetos de otras clases, arrojará un error.

Pros y contras de los constructores privados

Comencemos explorando las ventajas de los constructores privados en Kotlin.

El primer beneficio de usar un constructor privado es la seguridad. Dado que ninguna otra clase puede acceder a los datos de la clase privada, se vuelve segura.

La eficiencia de la memoria también es una ventaja de usar constructores privados, lo que significa que solo se crea una única instancia. Además, también puede evitar la generación automática de un constructor predeterminado.

En cuanto a las desventajas (contras), los constructores privados no permiten la herencia. Además, si queremos inicializar una clase constructora privada, necesitamos usar una clase anidada o un método estático.

Demostración de un constructor privado de Kotlin

Aquí hay un ejemplo en el que usamos la sintaxis anterior para crear una clase con un constructor privado.

import exampleClass.Companion.example

class exampleClass private constructor() {
    companion object {
        fun example() = exampleClass()
    }
}

class exampleClass1: Thread() {
    public override fun run() {
        println("The application is running on ${Thread.currentThread()}")
    }
}

class exampleClass2: Runnable {
    public override fun run() {
        println("Now the application is running on ${Thread.currentThread()}")
    }
}

fun main(){
    val v1 = example()
    println(v1)
    val th1 = exampleClass1()
    th1.start()
    val runnable = exampleClass2()
    val th2 = Thread(runnable)
    th2.start()
}

Producción :

exampleClass@77afea7d
The application is running on Thread[Thread-0,5, main]
Now the application is running on Thread[Thread-1,5, main]
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

Artículo relacionado - Kotlin Constructor