In Java, Konstruktorverkettung ist eine Aufruffolge Konstrukteure beim Initialisieren eines Objekts. Es wird verwendet, wenn wir mehrere Konstruktoren nacheinander aufrufen möchten, indem wir nur eine Instanz verwenden. In diesem Abschnitt werden wir diskutieren Konstruktorverkettung in Java im Detail mit geeigneten Beispielen. Werfen wir einen kurzen Blick darauf Was ist ein Konstruktor in Java?
Konstrukteur
In Java , ein Konstruktor ist dasselbe wie eine Methode, der einzige Unterschied besteht jedoch darin, dass der Konstruktor denselben Namen wie der Klassenname hat. Es wird verwendet, um eine Instanz der Klasse zu erstellen. Es wird automatisch aufgerufen, wenn wir ein Objekt der Klasse erstellen. Es gibt keinen Rückgabetyp. Denken Sie daran, dass ein Konstruktor nicht sein kann abstrakt , Finale , synchronisiert , Und statisch . Wir können einen Konstruktor nicht überschreiben.
In Java gibt es zwei Arten von Konstruktoren:
- Standardkonstruktor (auch bekannt als Konstruktor ohne Argumente)
- Parametrisierter Konstruktor
Konstruktorverkettung
In der Konstruktorkette wird ein Konstruktor von einem anderen Konstruktor in derselben Klasse aufgerufen, als der dieser Prozess bezeichnet wird Konstruktorverkettung. Es geschieht durch Vererbung. Wenn wir eine Instanz einer abgeleiteten Klasse erstellen, werden zunächst alle Konstruktoren der geerbten Klasse (Basisklasse) aufgerufen, danach wird der Konstruktor der aufrufenden Klasse (abgeleitete Klasse) aufgerufen.
Wir können die Konstruktorverkettung auf zwei Arten erreichen:
Was ist Ymail?
Denken Sie daran, dass eine Änderung der Reihenfolge des Konstruktors keine Auswirkungen auf die Ausgabe hat.
Die Notwendigkeit der Konstruktorverkettung
Angenommen, es sind fünf Aufgaben zu erledigen. Es gibt zwei Möglichkeiten, diese Aufgaben auszuführen: entweder alle Aufgaben in einem einzigen Konstruktor implementieren oder separate Aufgaben in einem einzigen Konstruktor erstellen.
Durch die Verwendung des Konstruktorverkettungsmechanismus können wir mehrere Aufgaben in einem einzigen Konstruktor implementieren. Wenn wir also auf solche Probleme stoßen, sollten wir die Konstruktorverkettung verwenden. Mithilfe der Konstruktorverkettung können wir das Programm lesbarer und verständlicher machen.
Regeln der Konstruktorverkettung
- Ein Ausdruck, der verwendet Das Schlüsselwort muss die erste Zeile des Konstruktors sein.
- Es muss mindestens ein Konstruktor vorhanden sein, der nicht verwendet wird Das
Konstruktoraufruf von einem anderen Konstruktor
Der Aufruf des Konstruktors kann auf zwei Arten erfolgen:
mylivecricket.in
Hinweis: Im selben Konstruktorblock können wir this() und super() nicht gleichzeitig verwenden.
Lassen Sie uns diese beiden Konzepte anhand von Java-Programmen verstehen.
Beispiele für Konstruktorverkettungen
Aufruf des aktuellen Klassenkonstruktors
Wir gebrauchen Das() Schlüsselwort, wenn wir den aktuellen Klassenkonstruktor innerhalb derselben Klasse aufrufen möchten. Die Verwendung von this() ist obligatorisch, weil JVM Setzen Sie es niemals automatisch so super() Stichwort. Beachten Sie, dass this() die erste Zeile des Konstruktors sein muss. Es muss mindestens ein Konstruktor ohne vorhanden sein this()-Schlüsselwort .
Syntax:
this(); or this(parameters list);
Zum Beispiel:
this(); this('Javatpoint');
Lassen Sie uns ein Java-Programm erstellen und den aktuellen Klassenkonstruktor aufrufen.
meine Monitorgröße
ConstructorChain.java
public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } }
Ausgabe:
Im obigen Beispiel haben wir eine Instanz der Klasse erstellt, ohne Parameter zu übergeben. Es ruft zuerst den Standardkonstruktor auf und der Standardkonstruktor leitet den Aufruf aufgrund von this() an den parametrisierten Konstruktor weiter. Die Anweisungen innerhalb des parametrisierten Konstruktors werden ausgeführt und kehren zum Standardkonstruktor zurück. Danach werden die restlichen Anweisungen im Standardkonstruktor ausgeführt und das Objekt erfolgreich initialisiert. Das Folgende ist die Aufrufsequenz des Konstruktors:
ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println()
Aufruf zum Superklassen-Konstruktor
Manchmal müssen wir den Konstruktor der Superklasse (übergeordnete Klasse) von der untergeordneten Klasse (abgeleitete Klasse) aufrufen. In solchen Fällen verwenden wir das Schlüsselwort super() im Konstruktor der abgeleiteten Klasse. Das Schreiben von super() ist optional, da JVM es automatisch einfügt. Es sollte immer in der ersten Zeile geschrieben werden. Wir erhalten einen Syntaxfehler, wenn wir versuchen, einen Oberklassenkonstruktor in der untergeordneten Klasse aufzurufen.
Syntax:
super(); or super(Parameter List);
super(): Es ruft den Konstruktor ohne Argumente oder den Standardkonstruktor der Oberklasse auf.
super(Parameter): Es ruft den parametrisierten Konstruktor der Oberklasse auf.
Denken Sie daran, dass der Konstruktor der Oberklasse nicht in der Unterklasse vererbt werden kann. Es kann vom Unterklassenkonstruktor mithilfe des Schlüsselworts super aufgerufen werden.
Lassen Sie uns ein Java-Programm erstellen und die Konstruktorverkettung in einer geerbten Klasse implementieren.
Java Mathe Zufall
ConstructorChaining.java
//parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } }
Ausgabe: