logo

Java-Konstruktoren

Java-Konstruktoren oder Konstruktoren in Java sind eine Terminologie, mit der wir etwas in unseren Programmen konstruieren. Ein Konstruktor in Java ist ein spezielle Methode das zum Initialisieren von Objekten verwendet wird. Der Konstruktor wird aufgerufen, wenn ein Objekt einer Klasse erstellt wird. Es kann verwendet werden, um Anfangswerte für Objektattribute festzulegen.

Was sind Konstruktoren in Java?

In Java ist ein Konstruktor ein Codeblock, der der Methode ähnelt. Es wird aufgerufen, wenn eine Instanz der Klasse erstellt wird. Zum Zeitpunkt des Aufrufs des Konstruktors wird Speicher für das Objekt im Speicher zugewiesen. Es handelt sich um einen speziellen Methodentyp, der zum Initialisieren des Objekts verwendet wird. Jedes Mal, wenn ein Objekt mit dem Schlüsselwort new() erstellt wird, wird mindestens ein Konstruktor aufgerufen.



Beispiel eines Java-Konstruktors

Nachfolgend finden Sie die Implementierung von Java-Konstruktoren:

Java
// Java Program to demonstrate // Constructor import java.io.*; // Driver Class class Geeks {    // Constructor  Geeks()  {  super();  System.out.println('Constructor Called');  }  // main function  public static void main(String[] args)  {  Geeks geek = new Geeks();  } }>

Ausgabe
Constructor Called>

Notiz: Es ist nicht notwendig, einen Konstruktor für eine Klasse zu schreiben. Dies liegt daran, dass der Java-Compiler einen Standardkonstruktor (Konstruktor ohne Argumente) erstellt, wenn Ihre Klasse keine hat.

Wie unterscheiden sich Java-Konstruktoren von Java-Methoden?

  • Konstruktoren müssen denselben Namen haben wie die Klasse, in der sie definiert sind. Dies ist für die Methode in Java nicht erforderlich.
  • Konstruktoren geben keinen Typ zurück, während Methoden den Rückgabetyp oder haben Leere if gibt keinen Wert zurück.
  • Konstruktoren werden zum Zeitpunkt der Objekterstellung nur einmal aufgerufen, während Methoden beliebig oft aufgerufen werden können.

Lassen Sie uns nun die Syntax für den Konstruktor entwickeln, der zum Zeitpunkt der Objekt- oder Instanzerstellung aufgerufen wird.



class Geek {   .......  // A Constructor  Geek() {  }  ....... } // We can create an object of the above class // using the below statement. This statement // calls above constructor. Geek obj = new Geek();>

Die erste Zeile eines Konstruktors ist ein Aufruf von super() oder this() (ein Aufruf eines Konstruktors einer Superklasse oder eines überladenen Konstruktors), wenn Sie den Aufruf von super nicht in Ihren Konstruktor eingeben Der Compiler stellt Ihnen in der ersten Zeile Ihres Codes einen Aufruf von super ohne Argumente zur Verfügung. Der Super-Konstruktor muss aufgerufen werden, um ein Objekt zu erstellen:

Wenn Sie denken, dass Ihre Klasse keine Unterklasse ist, was sie tatsächlich ist, ist jede Klasse in Java die Unterklasse einer Klasse Objekt auch wenn Sie in Ihrer Klassendefinition nicht „extends object“ sagen.

Bedarf an Konstruktoren in Java

Denken Sie an eine Box. Wenn wir über eine Box-Klasse sprechen, verfügt sie über einige Klassenvariablen (z. B. Länge, Breite und Höhe). Aber wenn es darum geht, sein Objekt zu erstellen (d. h. Box wird jetzt im Speicher des Computers vorhanden sein), kann es dann eine Box geben, für deren Abmessungen kein Wert definiert ist? Die Antwort ist N Ö .
Daher werden Konstruktoren verwendet, um den Klassenvariablen zum Zeitpunkt der Objekterstellung Werte zuzuweisen, was entweder explizit durch den Programmierer oder durch Java selbst (Standardkonstruktor) erfolgt.



Mark Zuckerberg Ausbildung

Wann wird der Java-Konstruktor aufgerufen?

Jedes Mal, wenn ein Objekt mit a erstellt wird neu() Schlüsselwort wird mindestens ein Konstruktor (es könnte der Standardkonstruktor sein) aufgerufen, um dem Anfangswerte zuzuweisen Datenelemente derselben Klasse. Regeln zum Schreiben von Konstruktoren lauten wie folgt:

  • Der bzw. die Konstruktoren einer Klasse müssen denselben Namen haben wie der Klassenname, in dem sie sich befindet.
  • Ein Konstruktor in Java kann nicht abstrakt, endgültig, statisch oder synchronisiert sein.
  • Zugriffsmodifikatoren können in der Konstruktordeklaration verwendet werden, um den Zugriff zu steuern, d. h. welche andere Klasse den Konstruktor aufrufen kann.

Wir haben also bei weitem gelernt, dass Konstruktoren verwendet werden, um den Zustand des Objekts zu initialisieren. Wie Methoden , ein Konstruktor enthält auch eine Sammlung von Anweisungen (d. h. Anweisungen), die zum Zeitpunkt der Objekterstellung ausgeführt werden.

Arten von Konstruktoren in Java

Jetzt ist der richtige Zeitpunkt, die Typen des Konstruktors zu besprechen. Daher gibt es in Java hauptsächlich drei Arten von Konstruktoren, die im Folgenden erwähnt werden:

  • Standardkonstruktor
  • Parametrisierter Konstruktor
  • Konstruktor kopieren

1. Standardkonstruktor in Java

Ein Konstruktor, der keine Parameter hat, wird als Standardkonstruktor bezeichnet. Ein Standardkonstruktor ist unsichtbar. Und wenn wir einen Konstruktor ohne Argumente schreiben, erstellt der Compiler keinen Standardkonstruktor. Es wird herausgenommen. Es wird überladen und als parametrisierter Konstruktor bezeichnet. Der Standardkonstruktor wurde in den parametrisierten Konstruktor geändert. Der parametrisierte Konstruktor kann den Standardkonstruktor jedoch nicht ändern. Der Standardkonstruktor kann implizit oder explizit sein. Wenn wir nicht explizit definieren, erhalten wir einen impliziten Standardkonstruktor. Wenn wir einen Konstruktor manuell schreiben, wird der implizite überschrieben.

Beispiel:

Java
// Java Program to demonstrate // Default Constructor import java.io.*; // Driver class class GFG {  // Default Constructor  GFG() { System.out.println('Default constructor'); }  // Driver function  public static void main(String[] args)  {  GFG hello = new GFG();  } }>

Ausgabe
Default constructor>

Notiz: Der Standardkonstruktor stellt dem Objekt je nach Typ die Standardwerte wie 0, Null usw. bereit.

10 von 50,00

2. Parametrisierter Konstruktor in Java

Ein Konstruktor, der über Parameter verfügt, wird als parametrisierter Konstruktor bezeichnet. Wenn wir Felder der Klasse mit unseren eigenen Werten initialisieren möchten, verwenden wir einen parametrisierten Konstruktor.

Beispiel:

Java
// Java Program for Parameterized Constructor import java.io.*; class Geek {  // data members of the class.  String name;  int id;  Geek(String name, int id)  {  this.name = name;  this.id = id;  } } class GFG {  public static void main(String[] args)  {  // This would invoke the parameterized constructor.  Geek geek1 = new Geek('Avinash', 68);  System.out.println('GeekName :' + geek1.name  + ' and GeekId :' + geek1.id);  } }>

Ausgabe
GeekName :Avinash and GeekId :68>

Denken Sie daran: Gibt der Konstruktor einen Wert zurück?

Der Konstruktor enthält keine Rückgabewertanweisungen, aber der Konstruktor gibt die aktuelle Klasseninstanz zurück. Wir können „return“ in einen Konstruktor schreiben.

Das wichtigste Thema, das jetzt ins Spiel kommt, ist die starke Einbindung von OOPS in Konstruktoren, die als Konstruktorüberladung bekannt ist. Genau wie Methoden können wir Konstruktoren zum Erstellen von Objekten auf unterschiedliche Weise überladen. Der Compiler unterscheidet Konstruktoren anhand der Anzahl der Parameter, der Parametertypen und der Reihenfolge der Parameter.

dhl bedeutet was

Beispiel:

Java
// Java Program to illustrate constructor overloading // using same task (addition operation ) for different // types of arguments. import java.io.*; class Geek {  // constructor with one argument  Geek(String name)  {  System.out.println('Constructor with one '  + 'argument - String : ' + name);  }  // constructor with two arguments  Geek(String name, int age)  {  System.out.println(  'Constructor with two arguments : '  + ' String and Integer : ' + name + ' ' + age);  }  // Constructor with one argument but with different  // type than previous..  Geek(long id)  {  System.out.println(  'Constructor with one argument : '  + 'Long : ' + id);  } } class GFG {  public static void main(String[] args)  {  // Creating the objects of the class named 'Geek'  // by passing different arguments  // Invoke the constructor with one argument of  // type 'String'.  Geek geek2 = new Geek('Shikhar');  // Invoke the constructor with two arguments  Geek geek3 = new Geek('Dharmesh', 26);  // Invoke the constructor with one argument of  // type 'Long'.  Geek geek4 = new Geek(325614567);  } }>

Ausgabe
Constructor with one argument - String : Shikhar Constructor with two arguments : String and Integer : Dharmesh 26 Constructor with one argument : Long : 325614567>

3. Kopieren Sie den Konstruktor in Java

Im Gegensatz zu anderen Konstruktoren wird der Kopierkonstruktor mit einem anderen Objekt übergeben, das die vom übergebenen Objekt verfügbaren Daten in das neu erstellte Objekt kopiert.

Notiz: In Java gibt es keinen solchen integrierten Kopierkonstruktor wie in anderen Programmiersprachen wie C++, stattdessen können wir unseren eigenen Kopierkonstruktor erstellen, indem wir das Objekt derselben Klasse an die andere Instanz (das andere Objekt) der Klasse übergeben.

Beispiel:

Java
// Java Program for Copy Constructor import java.io.*; class Geek {  // data members of the class.  String name;  int id;  // Parameterized Constructor  Geek(String name, int id)  {  this.name = name;  this.id = id;  }  // Copy Constructor  Geek(Geek obj2)  {  this.name = obj2.name;  this.id = obj2.id;  } } class GFG {  public static void main(String[] args)  {  // This would invoke the parameterized constructor.  System.out.println('First Object');  Geek geek1 = new Geek('Avinash', 68);  System.out.println('GeekName :' + geek1.name  + ' and GeekId :' + geek1.id);  System.out.println();  // This would invoke the copy constructor.  Geek geek2 = new Geek(geek1);  System.out.println(  'Copy Constructor used Second Object');  System.out.println('GeekName :' + geek2.name  + ' and GeekId :' + geek2.id);  } }>

Ausgabe
First Object GeekName :Avinash and GeekId :68 Copy Constructor used Second Object GeekName :Avinash and GeekId :68>

Um mehr über Konstruktoren zu erfahren, gibt es zwei weit verbreitete Konzepte, die im Folgenden aufgeführt sind:

  • Konstruktorverkettung
  • Konstruktor kopieren

FAQs in Java-Konstruktoren

1. Was ist ein Konstruktor in Java?

Ein Konstruktor in Java ist ein spezielle Methode Wird zum Initialisieren von Objekten verwendet.

2. Kann ein Java-Konstruktor privat sein?

Ja, ein Konstruktor kann als privat deklariert werden. Zur Einschränkung der Objekterstellung wird ein privater Konstruktor verwendet.