Différence entre les constructeurs et les méthodes

Soufflet est un exemple que j'ai trouvé sur Tutoriels Points, un exemple d'un constructeur. J'ai obtenu la plupart d'entre eux, mais je ne vois pas pourquoi vous avez besoin d'un constructeur et une méthode.

public Puppy(String name){
    System.out.println("Passed Name is :" + name ); 
}

Ma question est, ce qui vous empêche de le faire à la place?

public static void Puppy(String name){
    System.out.println("Passed Name is: "+name);
}

N'a pas ces deux la même chose, une fois appelé?

Voici le programme complet de référence:

public class Puppy {
    int puppyAge;

    public Puppy(String name) {
        System.out.println("Passed Name is :" + name); 
    }

    public void setAge(int age) {
        puppyAge = age;
    }

    public int getAge() {
        System.out.println("Puppy's age is :" + puppyAge); 
        //what does this return do? since the puppyAge is already printed above.
        return puppyAge;
    }

    public static void main(String []args){
        Puppy myPuppy = new Puppy("tommy");

        myPuppy.setAge(2);
        myPuppy.getAge();

        System.out.println("Variable Value :" + myPuppy.puppyAge); 
    }
}
La méthode qui croyez-vous est de dupliquer le travail du constructeur? Seulement si le constructeur et une autre méthode est d'effectuer la même tâche peut l'un d'eux est inutile. Dans ce cas, cependant, le constructeur n'est pas de faire toutes les choses qu'elle doit faire - en particulier, un constructeur doit définir les valeurs de toutes les variables membres de la classe (et ce n'est pas de réglage puppyAge, de sorte que l'instance est dans un état indéfini immédiatement après la construction) et il n'est pas en utilisant le nom du chiot pour définir une variable (alors pourquoi est-il fourni avec le nom du chiot à tous?).

OriginalL'auteur Steven Zhao | 2014-11-09