Kotlin Privater Konstrukteur

Kailash Vaviya 20 Juni 2023
Kotlin Privater Konstrukteur

Wir können einen primären Konstruktor in der Java-Programmierung als privat definieren. Wir können dann mit einer öffentlichen statischen Methode auf den Konstruktor zugreifen. Aber ist das in Kotlin möglich?

Auch Kotlin erlaubt die Erstellung von privaten Konstruktoren. Wie? Das werden wir in diesem Artikel sehen.

Kotlin privater Konstruktor

Konstruktoren sind spezielle Elementfunktionen einer Kotlin-Klasse. Sie werden aufgerufen, wenn wir ein Objekt erstellen und initialisieren.

Kotlin private Konstruktoren sind hilfreich, um benutzerdefinierte Einblicke in die Klasse zu ermöglichen; Es wird auch den primären Konstruktor der Kotlin-Klasse verbergen. Angenommen, wir möchten eine unerwünschte Objekterstellung für die Speichereffizienz verhindern. Wir können dazu private Konstrukteure verwenden.

Wir können einen Kotlin-Konstruktor als privat definieren, indem wir das Zugriffsmodifizierer-Schlüsselwort private und ein Begleitobjekt verwenden. Klassenmitglieder können auf die privaten Mitglieder von Begleitobjekten zugreifen.

Die Syntax zum Deklarieren eines Konstruktors als privat lautet:

class class_Name private constructor()

Arbeiten von privaten Konstrukteuren

private Konstruktoren arbeiten, indem sie den primären Konstruktor Ihrer Klasse privat machen. Es hindert andere Klassen daran, Objekte mit dem private-Konstruktor zu erstellen.

Beim Erstellen eines privaten Konstruktors verwenden Sie am besten eine statische Methode. Der Grund ist, dass statische Methoden ohne Objektinitialisierung ablaufen können.

Jetzt ermöglichen die privaten Konstruktoren das Erstellen und Initialisieren von Objekten derselben Klasse. Wenn Sie jedoch versuchen, Objekte aus anderen Klassen zu initialisieren, wird ein Fehler ausgegeben.

Vor- und Nachteile von privaten Konstruktoren

Beginnen wir damit, die Vorteile von privaten Konstruktoren in Kotlin zu erkunden.

Der erste Vorteil der Verwendung eines privaten Konstruktors ist die Sicherheit. Da keine anderen Klassen auf die Daten der Klasse private zugreifen können, ist diese sicher.

Die Speichereffizienz ist auch ein Vorteil der Verwendung von privaten Konstruktoren, was bedeutet, dass nur eine einzige Instanz erstellt wird. Darüber hinaus kann es auch die automatische Generierung eines Standardkonstruktors verhindern.

Zu den Nachteilen (Cons) kommend, erlauben private Konstrukteure keine Vererbung. Wenn wir eine private Konstruktorklasse initialisieren möchten, müssen wir außerdem eine verschachtelte Klasse oder eine statische Methode verwenden.

Demonstration eines privaten Kotlin-Konstruktors

Hier ist ein Beispiel, in dem wir die obige Syntax verwenden, um eine Klasse mit einem privaten Konstruktor zu erstellen.

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()
}

Ausgang:

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

Verwandter Artikel - Kotlin Constructor