CodeGym /Cours /Syntaxe Java /Constructeurs

Constructeurs

Syntaxe Java
Niveau 5 , Leçon 8
Disponible

« 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
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
MyFile file = new MyFile("c:\data\a.txt");


MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();

« 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
class MyFile
{
  private String filename = null;

  public void initialize(String name)
  {
    this.filename = name;
  }

  public void initialize(String folder, String name)
  {
    this.filename = folder + name;
  }

  public void initialize(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}
class MyFile
{
  private String filename = null;

  public MyFile(String name)
  {
    this.filename = name;
  }

  public MyFile(String folder, String name)
  {
    this.filename = folder + name;
  }

  public MyFile(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}

« 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. »

Commentaires (4)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Christophe niveau 22, Lausanne, Switzerland
10 avril 2020
il n'y a pas de code à recopier (ça me dérange pas note...)
Arthur niveau 8, Céron, France
18 mai 2020
si tu pouvais m'aider avec les constructeurs stp j'ai bcp de mal...
Christophe niveau 22, Lausanne, Switzerland
21 mai 2020
Salut Artur, commence par formuler tes questions...
Arthur niveau 8, Céron, France
25 mai 2020
OK merci mais du coup j'ai compris c'est juste que je n'avais pas compris comment faire sans type.