Was ist Konstruktorüberladung in Java?
Veröffentlicht: 2022-11-16Die Nachfrage nach Webanwendungen steigt weltweit. Java hat sich als bevorzugte Wahl für Entwickler herausgestellt, die umfangreiche Programmierungen benötigen. Die Popularität von Java beruht auf seinen dynamischen Funktionen, seiner benutzerfreundlichen Oberfläche und seiner hohen Kompatibilität mit führenden Betriebssystemen. Die Sprache hat eine reichhaltige API. Ein weiterer Vorteil von Java ist, dass es einen robusten Community-Support und hervorragende Dokumentationsdienste bietet. Vergessen Sie nicht die Suite von Entwicklungstools, die Java bietet.
Was meinst du mit Konstruktoren in Java?
Konstruktoren in Java werden hauptsächlich zum Initialisieren des Zustands des Objekts verwendet. Ähnlich wie Methoden bestehen Konstruktoren aus einer Gruppe von Anweisungen oder Anweisungen, die ausgeführt werden müssen, wenn ein Objekt erstellt wird.
Wozu braucht man einen Konstruktor in Java?
Um die Notwendigkeit eines Constrictors in Java zu erklären, nehmen wir ein Beispiel einer Box. Betrachten Sie die Box als eine Klasse. Die Box hat verschiedene Variablen wie Länge, Breite und Höhe. Wenn es an der Zeit ist, ein Objekt zu erstellen, hat die Box-Klasse keine definierten Werte für ihre Abmessungen. Wenn neue Objekte erstellt werden, weisen die Konstruktoren den Klassenvariablen auf zwei Arten Werte zu – durch verschiedene vom Programmierer übergebene Parameter oder durch die Verwendung von Standard-Java-Konstruktoren.
Was meinst du mit Konstruktorüberladung in Java?
Beim Überladen von Konstruktoren werden mehrere Konstruktoren derselben Klasse definiert. Jeder Konstruktor sollte jedoch eine eindeutige Signatur oder bestimmte Eingabeparameter haben. Das Konstruktorüberladungsprogramm in Java ermöglicht es einer einzelnen Klasse, mehr als einen Konstruktor zu haben, der sich durch die Liste der übergebenen Argumente unterscheidet. Jeder überladene Konstruktor wird verwendet, um verschiedene Klassenaufgaben auszuführen.
Der Java-Compiler identifiziert die überladenen Konstruktoren anhand von Parametertypen, Parameterlisten und der Menge der Eingabeparameter. Es ist ziemlich offensichtlich, dass die überladenen Konstruktoren unterschiedliche Signaturen haben. Die Signatur des Konstruktors enthält seine Parametertypen und seinen Namen. Manchmal treten Mehrdeutigkeitsprobleme auf, wenn zwei Klassenkonstruktoren eine identische Signatur haben. In einer solchen Situation kann der Compiler nicht zwischen den beiden unterscheiden. Daher zeigt es eine Fehlermeldung an. Manchmal gibt es überladene Konstruktoren mit unterschiedlichen Signaturen. In diesem Fall stellt der Compiler fest, dass der Dirigent in Abhängigkeit von der Anzahl der Eingabeparameter der verschiedenen Objekte aufgerufen wird.
Beispiel für Konstruktorüberladung
In diesem Beispiel möchten wir zwei Objekte der Klasse StudentData erstellen . Ein Objekt verwendet einen Standardkonstruktor, während das andere einen parametrisierten Konstruktor verwendet. Beide Konstruktoren haben separate Initialisierungscodes. Es ist möglich, Konstruktoren beliebiger Zahlen mit unterschiedlichen 2-Initialisierungscodes für unterschiedliche Zwecke zu erstellen.
StudentData.java
Klasse StudentData
{
private int stuID;
private Zeichenfolge stuName ;
private int stuAge;
Studentendaten ()
{
//Standardkonstruktor
stuID = 100 ;
stuName = „Neuer Student“ ;
stuAge = 18 ;
}
StudentData ( int num1, String str, int num2)
{
//Parametrisierter Konstruktor
stuID = num1;
stuName = str;
stuAge = num2;
}
//Getter- und Setter-Methoden
public int getStuID() {
stuID zurückgeben;
}
public void setStuID( int stuID) {
diese .stuID = stuID;
}
öffentlicher String getSTUName() {
stuName zurückgeben;
}
public void setStuName( String stuName) {
diese .stuName = stuName;
}
public int getStuAge() {
Rückreise ;
}
public void setStuAge( int stuAge) {
diese .stuAge = stuAge;
}
public static void main( String args[])
{
//Diese Objekterstellung würde den Standardkonstruktor aufrufen
StudentData myobj = new StudentData ();
System . out .println( „Schülername ist: „ +myobj.getStuName());
System . out .println( „Alter des Schülers ist: „ +myobj.getStuAge());
System . out .println( „Studenten-ID ist: „ +myobj.getStuID());
/*Diese Objekterstellung würde die parametrisierte aufrufen
* Konstruktor StudentData(int, String, int)*/
StudentData myobj2 = new StudentData ( 555 , „Chaitanya“ , 25 );
System . out .println( „Schülername ist: „ +myobj2.getStuName());
System . out .println( „Schüleralter ist: „ +myobj2.getStuAge());
System . out .println( „Studenten-ID ist: „ +myobj2.getStuID());
}
}
Ausgabe:
Student Name ist : Neuer Student
Schüleralter : 18 _ _
Studentenausweis : 100 _ _
Schülername ist : Chaitanya _
Schüleralter : 25 _ _
Studenten- ID ist : 555
Referenz: https://beginnersbook.com/2013/05/constructor-overloading/
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.
Verstehen der Funktion von this() beim Überladen von Konstruktoren
öffentliche Klasse OverloadingExample2
{
private int rollNum;
ÜberladenExample2 ()
{
rollNum = 100 ;
}
ÜberladenBeispiel2 ( int rnum)
{
dies ();
/*this() wird zum Aufrufen der Vorgabe verwendet
* Konstruktor aus parametrisiertem Konstruktor.
* Es sollte immer die erste Anweisung sein
* innerhalb des Konstruktorkörpers.
*/
rollNum = rollNum+ rnum;
}
public int getRollNum() {
return rollNum;
}
public void setRollNum( int rollNum) {
diese .rollNum = rollNum;
}
public static void main( String args[])
{
OverloadingExample2 obj = new OverloadingExample2 ( 12 );
System . aus .println (obj.getRollNum());
}
}
Ausgabe
112
Referenz: https://beginnersbook.com/2013/05/constructor-overloading/
upGrads exklusives Softwareentwicklungs-Webinar für Sie –
upGrads exklusives Softwareentwicklungs-Webinar für Sie –
SAAS Business – Was ist so anders?
In dem oben erwähnten Programm wird der parametrisierte Konstruktor während der Erstellung des Objekts aufgerufen. Der Standardkonstruktor wird aufgerufen, wenn this() im parametrisierten Konstruktor platziert wird. Die Variable rollNum wird initialisiert.
Ein anderes Beispiel:
Wenn Sie keinen Konstruktor implementieren, fügt der Java-Compiler während der Kompilierung einen Standardkonstruktor in den Code ein. Der Compiler tut dies jedoch nicht, wenn Sie einen Konstruktor implementieren. Sehen Sie sich das Beispiel hier an, um diesen Punkt besser zu verstehen:
öffentliche Klasse Demo
{
private int rollNum;
//Wir definieren hier keinen No-Arg-Konstruktor
Demo ( int rnum)
{
rollNum = rollNum+ rnum;
}
//Getter- und Setter-Methoden
public static void main( String args[])
{
//Diese Anweisung würde den No-Arg-Konstruktor aufrufen
Demo obj = neue Demo ();
}
}
Ausgabe:
Ausnahme im Thread „main“ java.lang. Fehler : Ungelöste Kompilierung
Problem: Der Konstruktor Demo () ist undefiniert
Beliebte Kurse und Artikel zum Thema Softwareentwicklung
Beliebte Programme | |||
Executive PG-Programm in Softwareentwicklung - IIIT B | Blockchain-Zertifikatsprogramm - PURDUE | Programm für Cybersicherheitszertifikate - PURDUE | MSC in Informatik - IIIT B |
Andere beliebte Artikel | |||
Cloud Engineer Gehalt in den USA 2021-22 | Gehalt als AWS-Lösungsarchitekt in den USA | Backend-Entwicklergehalt in den USA | Front-End-Entwicklergehalt in den USA |
Gehalt für Webentwickler in den USA | Fragen im Vorstellungsgespräch für Scrum Master im Jahr 2022 | Wie starte ich 2022 eine Karriere in der Cybersicherheit? | Karrieremöglichkeiten in den USA für Ingenieurstudenten |
Erläuterung der Verwendung von Konstruktorüberladungen
Mit dem Überladen von Konstruktionen wird es möglich, die Erstellung eines Objekts einer bestimmten Klasse auf unterschiedliche Weise zu ermöglichen. Daher wird dieses Konzept je nach Anforderung des Programmierers in verschiedenen Java-Programmen verwendet. Beim Überladen von Konstruktoren in Java ist es möglich, die Objekte mit unterschiedlichen Datentypen zu initialisieren.
Angenommen, es gibt ein Objekt mit drei Klasseninstanzvariablen. Sie müssen der zweiten Instanzvariablen einen bestimmten Wert und den anderen Variablen Standardwerte zuweisen. Erfüllen Sie dies, indem Sie mehrere Konstruktoren gemäß unterschiedlichen Signaturen in der konstituierenden Klasse deklarieren.
Vorteile der Konstruktorüberladung in Java
Im Folgenden sind die wichtigsten Vorteile der Verwendung von Konstruktorüberladungen beim Schreiben von Java-Programmen aufgeführt:
- Sie können die Klasseninstanzen auf verschiedene Weise initialisieren, indem Sie Konstruktorüberladungen verwenden.
- Mit Konstruktorüberladung können Sie statischen Polymorphismus erreichen.
- Jeder überladene Konstruktor führt verschiedene Aufgaben für bestimmte Zwecke aus.
- Das Überladen von Konstruktoren in Java vereinfacht den Prozess der Definition mehrerer Konstruktoren in einer einzelnen Klasse mit eindeutig spezifischen Signaturen.
Fazit
Dieser Artikel beschreibt das Konstruktorüberladungsprogramm in Java und seine Vorteile. Bei überladenen Konstruktoren gibt es mehr als einen Konstruktor einer Klasse mit unterschiedlichen Signaturen. Zum Kompilieren muss jeder Konstruktor unterschiedliche Parameterlisten haben. Eine Parameterliste umfasst die Typen und Reihenfolgen von Argumenten. Es ist unmöglich, zwei Konstruktoren mit denselben Parameterlisten in einer Klasse zu haben.
UpGrads Full Stack Development Certificate Program für Softwareentwickler und Technikexperten
Unabhängig davon, ob Sie neu in der Softwareentwicklungsbranche sind oder sich weiterbilden möchten, müssen Sie sich in entsprechenden Kursen neue Fähigkeiten und Technologien aneignen. Full-Stack-Entwicklung ist ein solcher Kurs.
upGrad bietet interessierten Kandidaten ein Executive-Programm für Softwareentwicklung an, das ausschließlich für IT-Experten, Softwareentwickler, technische Support-Experten, Analysten und Absolventen entwickelt wurde, die sich in die Softwareentwicklungsbranche wagen möchten.
Mit diesem Kurs sind Sie hochqualifiziert in JavaScript und lernen Microservices und MERN Stack. Neben dem Erlernen von mehr als 10 Programmiersprachen und Tools lernen Sie auch die verschiedenen Tools kennen, die häufig auf Facebook, Walmart, Netflix und LinkedIn verwendet werden. Das Programm bietet eine immersive Lernerfahrung in Cloud Labs.
Studenten, die dieses Zertifikatsprogramm absolvieren, haben die Möglichkeit, Webanwendungen im Capstone-Projekt zu entwerfen, zu entwickeln, zu testen und bereitzustellen. Die Lernenden erhalten mit diesen Vorteilen individuelle Karriere-Mentoring-Sitzungen mit führenden Branchenmentoren. Nach Abschluss des Kurses können Sie als Full-Stack-Entwickler, UI-Entwickler, Frontend- und Backend-Entwickler arbeiten.
Bewerben Sie sich jetzt für den Studiengang!
Was ist die Verwendung eines Konstruktors in Java?
Ein Konstruktor in Java wird verwendet, um Objekte zu initialisieren und ein Objekt einer Klasse zu erstellen. Sie können auch Anfangswerte für Objektmerkmale und -attribute festlegen. Ein Konstruktor ist wie ein Codeblock, ähnlich einer Methode oder einem Prozess.
Findet eine Konstruktorüberladung für die statische Klasse statt?
Interessanterweise können statische Leiter nicht überlastet oder vererbt werden. Ein statischer Dirigent wird automatisch aufgerufen. Der Benutzer hat keine Kontrolle darüber, wann der statische Konstruktor im Programm ausgeführt wird.
Gibt es einen Unterschied zwischen Konstruktorüberladung und Methodenüberladung?
Eine Methode wird verwendet, um bestimmte Klassenfunktionen auszuführen, während ein Konstruktor ein Objekt initialisiert. Wenn Sie ein Objekt erstellen, werden Konstruktoren implizit aufgerufen. Allerdings müssen Methoden vom Benutzer explizit aufgerufen werden.