Heim > Java > javaLernprogramm > Hauptteil

Java-Konstruktoren: Was ist der Unterschied zwischen „void'- und „non-void'-Konstruktoren?

Barbara Streisand
Freigeben: 2024-11-27 12:06:14
Original
550 Leute haben es durchsucht

Java Constructors: What's the Difference Between

Java-Konstruktoren verstehen: „void“ vs. „non-void“

In Java ist ein Konstruktor eine spezielle Methode, die eine initialisiert Instanz einer Klasse. Im Gegensatz zu regulären Methoden geben Konstruktoren keinen Rückgabetyp an; Stattdessen haben sie denselben Namen wie die Klasse selbst. Java sorgt jedoch für Verwirrung, indem es sogenannte „void“-Konstruktoren zulässt.

Beispiel 1: Nicht-Void-Konstruktor

Im folgenden Code ist der Konstruktor class1( ) wird ohne Angabe einer Rückgabe deklariert Typ:

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

Erklärung:

  • Der class1()-Konstruktor initialisiert das statische Wertfeld auf 0.
  • Wenn Instanzen h und h2 von Klasse1 erstellt werden, wird der Konstruktor aufgerufen.
  • Die da()-Methode erhöht den Wert, was zu a führt Endwert von 2.

Beispiel 2: Void-Konstruktor

Betrachten Sie nun diesen Code mit einem „void“-Konstruktor:

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

Erklärung:

  • Die Klasse1() Der „void“-Konstruktor initialisiert das Wertfeld nicht und ruft keine Methoden auf.
  • Wenn die Instanzen h und h2 erstellt werden, wird der Standardkonstruktor aufgerufen, der keine Initialisierung durchführt.
  • Folglich das Wertefeld bleibt auf seinem Anfangswert 0.

Fazit:
In In Java sind Konstruktoren, die einen Rückgabetyp deklarieren, auch wenn dieser ungültig ist, überhaupt keine Konstruktoren. Es sind einfach Methoden. Echte Konstruktoren, die Klasseninstanzen initialisieren, geben niemals einen Rückgabetyp an. Wenn kein Konstruktor explizit definiert ist, fügt Java automatisch einen Standardkonstruktor hinzu, der keine Initialisierung durchführt. Das Verständnis dieser Unterscheidung ist für die korrekte Klasseninitialisierung in Java von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonJava-Konstruktoren: Was ist der Unterschied zwischen „void'- und „non-void'-Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage