Der Standard-Konstruktor in Java

  1. der Standardkonstruktor in Java
  2. Der parametrisierte Konstruktor in Java

In der Sprache Java ähnelt der Begriff Konstruktor den Methoden, die wir in der Programmierung verwenden. Es gibt einige Eigenschaften eines Konstruktors, die Sie bei seiner Erstellung beachten sollten.

  1. Der Name des Konstruktors muss immer mit dem des Klassennamens übereinstimmen.
  2. Es darf keinen Rückgabetyp des Konstruktors geben.
  3. In einer Klasse kann es einen parametrisierten Konstruktor und einen no-argument-Konstruktor (Standardkonstruktor) geben.
  4. Der Konstruktor wird immer aufgerufen, wenn ein Objekt instanziiert wird.
  5. Der Konstruktor sollte nicht mit Schlüsselwörtern wie abstract, static, final und synchronized fortfahren.

der Standardkonstruktor in Java

Der Java-Standardkonstruktor wird oft als no-args-Konstruktor bezeichnet. Unten können Sie sich den Codeblock ansehen, um den Standardkonstruktor in Java zu verstehen.

public class Main {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.a);
    }
}

class B {
    int a;
}

Im obigen Codeblock werden Sie feststellen, dass es zwei Klassen gibt; die erste enthält die Methode main, die andere ist geschrieben, um die Funktionalität des Konstruktors abzubilden.

Die Funktion main ist der Einstiegspunkt des Programms und die Ausführung beginnt hier. Die Treiberklassenanweisung new B() ruft also den öffentlichen no-argument-Konstruktor der B-Klasse auf. Da es keine explizite Definition des angegebenen Konstruktors gab, erstellt der Compiler selbst einen Standardkonstruktor und ruft diesen in der obigen Anweisung auf.

Der Konstruktor initialisiert die Variablen der Klasse. Wenn kein Konstruktor definiert wird, initialisiert der Compiler den Wert der Variablen auf ihre Standardwerte. Wenn die Variable a der Klasse B in der Funktion println referenziert wird, wird der ausgegebene Wert unten ausgegeben.

Ausgabe:

0

Der parametrisierte Konstruktor in Java

Die Verwendung von parametrisierten Konstruktoren besteht darin, die Anzahl der Parameter zum Zeitpunkt der Objekterstellung zu übergeben. Unten ist der Codeblock, der seine Funktion demonstriert.

public class Main{
    public static void main(String[] args) {
        A a = new A(1, "One");
        System.out.println(a.a + " " + a.b);
//      A a1= new A();
    }
}

class A {
    int a;
    String b;

    A(int a, String b) {
        this.a = a;
        this.b = b;
    }
}

Im obigen Codeblock ist A eine Klasse, um den parametrisierten Konstruktor zu demonstrieren. Und eine andere ist die Klasse, die die Methode main enthält. In der Funktion ruft die Anweisung new A(1,One) intern den parametrisierten Konstruktor der Klasse A auf. Das erstellte Objekt wird der Referenz der Klasse zugewiesen und die Definition des Konstruktors wird in der Klasse definiert.

Der Konstruktor A(int a, String b) initialisiert den Wert der Variablen a und b. Die in den Parametern übergebenen Werte werden in die Variablen kopiert. In der Funktion println ruft die Verwendung der Referenzvariablen die Klassenvariablen der Klasse A auf; es druckt den instanziierten Wert in der Ausgabe mit einem dazwischen eingefügten Leerzeichen.

Daneben steht eine kommentierte Erklärung. Wir kommentieren die Anweisungen von der Ausführung mit dem Operator //. Die Anweisung new A() versucht intern, den no-argument-Konstruktor der Klasse zu finden. Wenn der Compiler keinen Standardkonstruktor findet, kann er einen Standardkonstruktor erstellen.

Diese Fähigkeit wird auf den Fall beschränkt, in dem kein expliziter Konstruktor definiert ist. In diesem Fall muss ein Benutzer den no-args-Konstruktor manuell erstellen. Das A a1= new A(); -Funktion gibt einen Kompilierzeitfehler aus. Die beiden Optionen zum Beheben des Problems bestehen darin, einen Standardkonstruktor zu erstellen oder die Signatur des vorhandenen parametrisierten Konstruktors zu ändern, der die vorhandene Anweisung zu einer Unterbrechung führt. Daher wird die Zeile kommentiert.

Ausgabe:

1 One

Verwandter Artikel - Java Constructor

  • Überladen eines Konstruktors in Java
  • Aufruf eines anderen Konstruktors in Java