Retour au cours

Création d'objets avec les constructeurs (par défaut et paramétrés)

Maîtrise de Java : De Zéro à Développeur Professionnel (Un parcours en 50 leçons)

Leçon 16 : Création d'objets avec les constructeurs

Un constructeur est un type spécial de méthode utilisé pour initialiser un objet immédiatement après l'allocation de mémoire pour celui-ci. Il ne s'exécute qu'une seule fois lors de la création de l'objet.

Caractéristiques clés des constructeurs

  1. Le nom d'un constructeur doit être exactement le même que celui de la classe.
  2. Il n'a pas de type de retour (pas même void).
  3. Il est appelé à l'aide du mot-clé new.

1. Le constructeur par défaut

Si vous ne définissez aucun constructeur explicitement, Java fournit automatiquement un constructeur public sans argument (par défaut).

java public class Book { String title;

// Java le fournit automatiquement si nous ne l'écrivons pas :
// public Book() { }

}

Book b = new Book(); // Appelle le constructeur par défaut

2. Constructeurs paramétrés

Utilisés pour forcer l'appelant à fournir des valeurs initiales pour l'état de l'objet.

java public class Book { String title; int pages;

// Constructeur paramétré
public Book(String initialTitle, int numPages) {
    title = initialTitle;
    pages = numPages;
    System.out.println("Nouveau livre initialisé : " + title);
}

}

// Doit passer des arguments lors de la création de l'objet Book harryPotter = new Book("Harry Potter", 300); // Book emptyBook = new Book(); // ERREUR ! Le constructeur par défaut n'existe plus.

3. Surcharge de constructeurs

Une classe peut avoir plusieurs constructeurs, tant que chacun a une liste de paramètres unique (nombre ou types de paramètres différents). C'est utile pour offrir de la flexibilité lors de la création d'objets.

java public class Book { // 1. Constructeur avec titre et pages public Book(String title, int pages) { ... }

// 2. Constructeur avec titre uniquement
public Book(String title) {
    this(title, 0); // Appelle le premier constructeur (chaînage de constructeurs)
}

}