« Maintenant, il est vraiment temps que je te parle des constructeurs. C'est un concept très simple. Les programmeurs ont inventé un moyen rapide de créer et initialiser des objets. »

Sans constructeur Avec un constructeur
MonFichier fichier = new MonFichier();
fichier.initialiser("c:\data\a.txt");
String texte = fichier.lireTexte();
MonFichier fichier = new MonFichier("c:\data\a.txt");
String texte = fichier.lireTexte();
MonFichier fichier = new MonFichier();
fichier.initialiser("c:\data\", "a.txt");
String texte = fichier.lireTexte();
MonFichier fichier = new MonFichier("c:\data\", "a.txt");
String texte = fichier.lireTexte();
MonFichier fichier = new MonFichier();
fichier.initialiser("c:\data\a.txt");

MonFichier fichier2 = new MonFichier();
fichier2.initialiser(MonFichier fichier, "a.txt");
String texte = fichier2.lireTexte();
MonFichier fichier = new MonFichier("c:\data\a.txt");


MonFichier fichier2 = new MonFichier(fichier, "a.txt");
String texte = fichier2.lireTexte();

« Je viens de terminer l'apprentissage de la méthode initialiser... »

« Regarde mieux. Avec les constructeurs, le code est plus pratique et compact. »

« C'est vrai. J'ai une question. Je sais comment écrire une méthode initialiser dans une classe, mais comment puis-je écrire un constructeur ? »

« D'abord, regarde cet exemple : »

Sans constructeur Avec un constructeur
classe MonFichier
{
  private String nomFichier = null;

  public void initialiser(String nom)
  {
    this.nomFichier = nom;
  }

  public void initialiser(String dossier, String nom)
  {
    this.nomFichier = dossier + nom;
  }

  public void initialiser(MonFichier fichier, String nom)
  {
    this.nomFichier = fichier.obtenirDossier() + nom;
  }

…
}
classe MonFichier
{
  private String nomFichier = null;

  public MonFichier(String nom)
  {
    this.nomFichier = nom;
  }

  public MonFichier(String dossier, String nom)
  {
    this.nomFichier = dossier + nom;
  }

  public MonFichier(MonFichier fichier, String nom)
  {
    this.nomFichier = fichier.obtenirDossier() + nom;
  }

…
}

« Il est facile de déclarer un constructeur dans une classe. Un constructeur est similaire à la méthode initialiser, à deux différences près :

1. Le nom d'un constructeur est le même que le nom de la classe (au lieu d'initialiser).

2. Un constructeur n'a pas de type (aucun type n'est indiqué). »

« OK, donc c'est comme initialiser, mais avec quelques différences. Je crois que j'ai compris. »