java “void” et “non nulle” constructeur

J'ai écrit cette simple classe java juste pour le test de certaines de ses caractéristiques.

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

La sortie est:

2

Mais dans ce 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);
    }
}

La sortie de ce code est:

0

Alors pourquoi ne pas, lorsque j'utilise void dans la méthode constructeur de la déclaration, le champ statique de la classe ne changera plus?

Que la deuxième n'est pas un constructeur. C'est juste une méthode qui se partage un nom avec sa classe.
Parce que ce n'est plus un constructeur.
la réponse à cette question semblable Pourquoi les constructeurs en java ont pas de type de retour donne une bonne raison.
son incroyable que vous avez écrit la réponse juste avant que je puisse actualiser la page ; tnx tous,

OriginalL'auteur Hadi | 2014-07-25