java "void" und "nicht nichtig" - Konstruktor

Schrieb ich dieser einfachen Klasse in java nur für Testzwecke einige seiner Funktionen.

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);
    }
}

Ausgabe:

2

Aber in diesem code:

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);
    }
}

Die Ausgabe dieses Codes ist:

0

Warum nicht, wenn ich void in der Konstruktor-Deklaration, das statische Feld der Klasse ändert sich nicht mehr?

  • Das zweite ist kein Konstruktor. Es ist nur eine Methode, das passiert Freigabe einen Namen mit seiner Klasse.
  • Denn es ist nicht mehr ein Konstruktor.
  • die Antwort auf diese ähnliche Frage Warum Konstruktoren in java nicht haben einen Rückgabetyp gibt einen guten Grund.
  • seine erstaunlich, dass Sie schrieb, Sie Antwort, kurz bevor ich die Seite aktualisieren kann ; tnx alle,
InformationsquelleAutor Hadi | 2014-07-25
Schreibe einen Kommentar