logo

Warum verwenden wir den Konstruktor in Java?

In diesem Abschnitt werden wir lernen Warum wir in Java einen Konstruktor verwenden Und was ist der Zweck Und Bedarf des Konstrukteurs . Daneben werden wir auch das sehen Typen des Konstruktors.

In Java ist das Konstrukteur ähnelt der Methode. Die Eigenschaft des Konstruktors besteht darin, dass er denselben Namen wie der Klassenname haben muss. Es gibt keinen Rückgabetyp. Wir müssen den Konstruktor nicht manuell aufrufen. Es wird während der Instanziierung automatisch implizit aufgerufen.

Mit anderen Worten ist ein Konstruktor eine Methode, die zur Laufzeit während der Objekterstellung mithilfe des new-Operators aufgerufen wird. Die JVM ruft es automatisch auf, wenn wir ein Objekt erstellen. Wenn wir in der Klasse keinen Konstruktor definieren, ist der Standardkonstruktor immer unsichtbar in der Klasse vorhanden. Es gibt folgende Gründe für die Verwendung von Konstruktoren:

Roboterkomponenten
  • Wir verwenden Konstruktoren, um das Objekt mit dem Standard- oder Anfangszustand zu initialisieren. Die Standardwerte für Grundelemente entsprechen möglicherweise nicht Ihren Wünschen.
  • Ein weiterer Grund für die Verwendung des Konstruktors besteht darin, dass er über Abhängigkeiten informiert. Mit anderen Worten: Mit dem Konstruktor können wir den Benutzer dieser Klasse nach erforderlichen Abhängigkeiten fragen.
  • Wir können herausfinden, was zur Verwendung dieser Klasse erforderlich ist, indem wir uns einfach den Konstruktor ansehen.

Kurz gesagt, wir verwenden den Konstruktor, um Initialisieren Sie die Instanzvariable der Klasse.

Arten von Konstrukteuren

In Java gibt es zwei Arten von Konstruktoren:

  • Parametrisierter Konstruktor
  • Standardkonstruktor

Parametrisierter Konstruktor

Wie der Name schon sagt, akzeptiert es Argumente (Parameter). Der parametrisierte Konstruktor wird verwendet, wenn wir die Instanzvariablen zum Zeitpunkt der Instanziierung dynamisch mit den angegebenen Werten initialisieren möchten.

Beispiel

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

Standardkonstruktor

Der Standardkonstruktor akzeptiert keine Parameter. Es wird verwendet, wenn wir die Instanzvariablen mit bestimmten Werten initialisieren möchten. Jede Java-Klasse verfügt unsichtbar über einen Standardkonstruktor. Wir müssen es also nicht separat definieren. Denken Sie daran, dass der Standardkonstruktor aus der Klasse entfernt wird, wenn wir einen parametrisierten Konstruktor erstellen.

Beispiel

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Hinweis: Wenn wir einem Java-Programm keinen Konstruktor zur Verfügung stellen, schreibt der Java-Compiler den Standardkonstruktor im Namen des Programmierers und kompiliert das Programm. Es initialisiert die Instanzvariablen mit den Standardwerten. Beispielsweise 0 für Integer, 0,0 für Float und Null für String.

Lassen Sie uns ein Programm erstellen und den standardmäßigen und parametrisierten Konstruktor verwenden.

In der Employee-Klasse haben wir zwei Konstruktoren erstellt, einer ist der Standardkonstruktor und der andere ist der parametrisierte Konstruktor. Die Employee-Klasse verfügt über zwei private Variablen, nämlich Name und Alter. In der Hauptmethode haben wir die Klasse instanziiert und beide Konstruktoren verwendet.

Employee.java

 import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } } 

Ausgabe:

 Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28