Heim >Java >javaLernprogramm >Was ist der Unterschied zwischen Void- und Non-Void-Konstruktoren in Java?

Was ist der Unterschied zwischen Void- und Non-Void-Konstruktoren in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-12-09 07:33:06551Durchsuche

What's the Difference Between Void and Non-Void Constructors in Java?

Verstehen von „void“- und „non-void“-Konstruktoren in Java

In Java spielt der Konstruktor eine einzigartige Rolle, die sich von Methoden unterscheidet. Sie hat zwar den gleichen Namen wie die von ihr initialisierte Klasse, verfügt jedoch nicht über einen Rückgabetyp und ist allein für die Objektinitialisierung verantwortlich. Im Gegensatz zu Methoden folgen Konstruktoren nicht den Prinzipien der Methodenüberladung.

Um dieses Konzept zu veranschaulichen, betrachten Sie die folgenden Codeausschnitte:

public class class1 {
    public static Integer value = 0;
    public class1() {
       da();
    }
    public int da() {
        class1.value += 1;
        return 5;
    }
    public static void main(String[] args) {
       class1 h = new class1();
       class1 h2 = new class1();
       System.out.println(class1.value);
    }
}

In diesem Ausschnitt wird ein nicht leerer Konstruktor deklariert . Die Ausgabe des Programms ist erwartungsgemäß 2. Beachten Sie jedoch den folgenden geänderten Code:

public class class1 {
    public static Integer value = 0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value += 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value);
    }
}

In diesem geänderten Snippet wurde der Konstruktor als ungültig deklariert. Das Ergebnis? Die Ausgabe ist jetzt 0. Dieses Verhalten ergibt sich aus der Tatsache, dass es sich bei der Deklaration eines Konstruktors mit dem Rückgabetyp „void“ im Wesentlichen nicht mehr um einen Konstruktor, sondern um eine reguläre Methode handelt. Daher ist sie nicht in der Lage, eine Objektinitialisierung durchzuführen.

In Java kann eine Klasse mehrere Konstruktoren mit jeweils unterschiedlichen Argumenten (Parameterliste) haben, aber nur einen Konstruktor ohne Argumente (den Standardkonstruktor). . Wenn eine Klasse keine Konstruktoren definiert, fügt der Compiler automatisch einen Standardkonstruktor ohne Argumente ein.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Void- und Non-Void-Konstruktoren in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn