Konstruktorüberladung in Java: Erklärung, Vorteile und Beispiele
Veröffentlicht: 2021-07-22Inhaltsverzeichnis
Grundlagen von Java
Java hat sich mit seinen bemerkenswerten und dynamischen Funktionen zu einer der begehrtesten Optionen von Entwicklern für die groß angelegte Programmierung von Webanwendungen entwickelt. Es ist eine benutzerfreundliche Sprache mit einer breiten Palette außergewöhnlicher Funktionen. Seine Kompatibilität mit allen Betriebssystemen ist die reichhaltige API, die es weltweit beliebt gemacht hat. Die Sprache bietet robusten Community-Support und hervorragende Dokumentationsdienste. Java verfügt über eine Reihe solider Entwicklungswerkzeuge.
Konstruktoren in Java
Die Konstruktoren in Java werden verwendet, um den Zustand des Objekts zu initialisieren. Genau wie Methoden enthalten auch Konstruktoren eine Gruppe von Anweisungen oder Anweisungen, die ausgeführt werden sollen, während ein Objekt erstellt wird.
Warum brauchen wir einen Konstruktor in Java?
Betrachten wir eine Box. Wenn angenommen wird, dass die Box eine Klasse ist, kann sie mehrere Variablen wie Breite, Länge und Höhe haben. Wenn ein Objekt erstellt werden soll, hat die Box-Klasse keine definierten Werte für ihre Abmessungen. Beim Erstellen neuer Objekte weisen die Konstruktoren den Variablen der Klasse Werte zu. Die Zuweisung von Werten kann entweder über Standard-Java-Konstruktoren oder explizit durch die vom Programmierer übergebenen Parameter erfolgen.
Wann wird ein Konstruktor aufgerufen?
Jedes Mal, wenn ein Objekt mit dem Schlüsselwort new() erstellt wird, wird mindestens ein Konstruktor aufgerufen. Dieser Konstruktor stellt den Datenmembern der Klasse Anfangswerte bereit. Im Allgemeinen wird ein Konstruktor aufgerufen, wenn ein neues Objekt oder eine neue Instanz erstellt wird.
Konstruktorüberladung in Java
Der Vorgang des Definierens mehrerer Konstruktoren derselben Klasse wird als Konstruktorüberladung bezeichnet. Jeder Konstruktor sollte jedoch eine andere Signatur oder Eingabeparameter haben. Mit anderen Worten, das Überladen von Konstruktoren in Java ist eine Technik, die es einer einzelnen Klasse ermöglicht, mehr als einen Konstruktor zu haben, der je nach Liste der übergebenen Argumente variiert. Jeder überladene Konstruktor wird verwendet, um verschiedene Aufgaben in der Klasse auszuführen.
Der Java-Compiler identifiziert die überladenen Konstruktoren anhand ihrer Parameterlisten, Parametertypen und der Anzahl der Eingabeparameter. Daher sollten die überladenen Konstruktoren unterschiedliche Signaturen haben. Die Signatur eines Konstruktors enthält seinen Namen und seine Parametertypen. Ein Mehrdeutigkeitsproblem entsteht, wenn zwei der Klassenkonstruktoren eine identische Signatur haben.
Der Compiler kann nicht zwischen den beiden unterscheiden und gibt daher eine Fehlermeldung zurück. Wenn Konstruktoren mit unterschiedlichen Signaturen überladen werden, bestimmt der Compiler den aufzurufenden Konstruktor basierend auf der Anzahl der Eingabeparameter der Objekte.
Verwendung von Konstruktorüberladung
Da das Überladen von Konstruktionen die Erstellung des Objekts einer bestimmten Klasse auf verschiedene Weise ermöglicht, wird es am häufigsten in Java-Programmen verwendet, basierend auf den Anforderungen des Programmierers. Durch die Verwendung von Konstruktorüberladung können Objekte mit unterschiedlichen Datentypen initialisiert werden.
Betrachten Sie als Beispiel ein Objekt mit drei Klasseninstanzvariablen, bei dem der zweiten Instanzvariablen ein bestimmter Wert zugewiesen werden soll und den anderen Variablen Standardwerte zugewiesen werden sollen. Dies kann durch die Deklaration mehrerer Konstruktoren gemäß den unterschiedlichen Signaturen in der konstituierenden Klasse erreicht werden.
Lesen Sie: Java Career Components & Architecture Explained
Beispielcode für die Implementierung von Konstruktorüberladung in Java
Betrachten wir ein Programm, in dem eine Employee-Klasse drei Konstruktoren hat. Basierend auf den übergebenen Werten wird jeder der drei aufgerufen, um ein Objekt zu initialisieren.
Verwendung dieser Referenz in Java
Alle Instanzmethoden und Konstruktoren begrüßen einen impliziten Parameter namens „this“, der verwendet wird, um auf das aktuelle Objekt zu verweisen. Das aktuelle Objekt ist das Objekt, für das die Methode aufgerufen wird. Wir können die 'this'-Referenz verwenden, um auf das aktuelle Objekt in jedem Konstruktor oder jeder Methode zu verweisen. Die „this“-Referenz kann wie jede andere Objektreferenz verwendet werden, um auf Instanzmethoden, Konstruktoren und Variablen innerhalb des Methoden- oder Konstruktorkörpers zuzugreifen.
Einige wichtige Szenarien, in denen die „this“-Referenz verwendet wird, sind:
- Wenn sich die Namen der Parameter von den Namen der Instanzvariablen unterscheiden
- Wenn eine Referenz an das aktuelle Objekt und ein Parameter an eine andere Methode übergeben werden soll
- Wenn ein Konstruktor von einem anderen Konstruktor aufgerufen werden soll.
Die Referenzargumente von this() müssen in diesem Fall mit den Argumenten des Zielkonstruktors übereinstimmen. Die Funktion this() muss die erste Anweisung innerhalb des Konstruktors sein. In Sonderfällen wie der Komplexität der Initialisierungsroutine kann diese Funktion bei der Eliminierung von doppeltem Code in mehreren Konstruktoren verwendet werden.
Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Vorteile der Konstruktorüberladung in Java
Die wichtigsten Vorteile der Konstruktorüberladung beim Schreiben von Java-Programmen sind:
- Das Überladen des Konstruktors ermöglicht das Erreichen von statischem Polymorphismus.
- Die Klasseninstanzen können auf verschiedene Weise mit Konstruktorüberladung initialisiert werden.
- Es erleichtert das Definieren mehrerer Konstruktoren in einer Klasse mit eindeutigen Signaturen.
- Jeder überladene Konstruktor führt verschiedene Aufgaben für bestimmte Zwecke aus.
Zusammenfassung
- Das Überladen von Konstruktoren in Java bezieht sich auf die Verwendung von mehr als einem Konstruktor in einer Instanzklasse. Jeder überladene Konstruktor muss jedoch unterschiedliche Signaturen haben.
- Damit die Kompilierung erfolgreich ist, muss jeder Konstruktor eine andere Liste von Argumenten enthalten.
- Die Liste der Parameter enthält die Sequenz und die Typen der Eingabeargumente.
- Zwei Konstruktoren in einer Klasse mit derselben Parameterliste sind in Java nicht möglich.
Wenn Sie mehr über Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Softwareentwicklung von upGrad & IIIT-B an – Spezialisierung auf Full-Stack-Entwicklung, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training bietet, 9+ Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.