Menu
Coddy logo textTech

Constructeurs nommés

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 11 sur 110.

Les constructeurs nommés vous permettent de créer plusieurs constructeurs pour une classe, chacun avec un nom descriptif qui clarifie son but. Ceci est particulièrement utile lorsque vous avez besoin de différentes manières d'initialiser un objet.

La syntaxe utilise le nom de la classe suivi d'un point et du nom du constructeur :

class Point {
  int x;
  int y;

  // Constructeur standard
  Point(this.x, this.y);

  // Constructeur nommé pour le point d'origine
  Point.origin() : x = 0, y = 0;

  // Constructeur nommé à partir d'une seule valeur
  Point.diagonal(int value) : x = value, y = value;
}

Chaque constructeur nommé offre une manière claire et lisible de créer des objets :

Point p1 = Point(3, 5);
Point p2 = Point.origin();
Point p3 = Point.diagonal(10);

print('p1: (${p1.x}, ${p1.y})'); // p1: (3, 5)
print('p2: (${p2.x}, ${p2.y})'); // p2: (0, 0)
print('p3: (${p3.x}, ${p3.y})'); // p3: (10, 10)

Les constructeurs nommés rendent votre code plus expressif. Au lieu de deviner ce que Point(0, 0) signifie, Point.origin() communique immédiatement l'intention. Ce motif est courant dans les bibliothèques Dart et aide à créer du code auto-documenté.

challenge icon

Défi

Facile

Construisons un convertisseur de température qui met en avant la puissance des constructeurs nommés. Vous allez créer une classe Temperature qui peut être initialisée de différentes manières selon l'unité de départ.

Vous organiserez votre code en deux fichiers :

  • temperature.dart : Définissez une classe Temperature avec une variable d'instance double celsius. Votre classe doit proposer trois façons de créer une température :
    • Un constructeur régulier Temperature(this.celsius) qui prend directement une valeur en Celsius.
    • Un constructeur nommé Temperature.fromFahrenheit qui accepte une valeur en Fahrenheit et la convertit en Celsius en utilisant la formule : (fahrenheit - 32) * 5 / 9
    • Un constructeur nommé Temperature.freezing() qui crée une température au point de congélation (0 degré Celsius).
    Ajoutez une méthode display() qui affiche : [celsius]C
  • main.dart : Importez votre classe de température et créez trois objets de température :
    • Un utilisant le constructeur régulier avec 25.0
    • Un utilisant fromFahrenheit avec 98.6
    • Un utilisant freezing()
    Appelez display() sur chaque température dans l'ordre listé ci-dessus.

Format de sortie attendu :

25.0C
37.0C
0.0C

Aide-mémoire

Les constructeurs nommés vous permettent de créer plusieurs constructeurs pour une classe avec des noms descriptifs qui clarifient leur but.

La syntaxe utilise le nom de la classe suivi d'un point et du nom du constructeur :

class Point {
  int x;
  int y;

  // Constructeur régulier
  Point(this.x, this.y);

  // Constructeur nommé pour le point d'origine
  Point.origin() : x = 0, y = 0;

  // Constructeur nommé à partir d'une seule valeur
  Point.diagonal(int value) : x = value, y = value;
}

Utilisation des constructeurs nommés :

Point p1 = Point(3, 5);
Point p2 = Point.origin();
Point p3 = Point.diagonal(10);

print('p1: (${p1.x}, ${p1.y})'); // p1: (3, 5)
print('p2: (${p2.x}, ${p2.y})'); // p2: (0, 0)
print('p3: (${p3.x}, ${p3.y})'); // p3: (10, 10)

Les constructeurs nommés rendent le code plus expressif et auto-documenté en communiquant clairement l'intention.

Essayez vous-même

import 'temperature.dart';

void main() {
  // À FAIRE : Créer une Temperature en utilisant le constructeur standard avec 25.0
  
  // À FAIRE : Créer une Temperature en utilisant fromFahrenheit avec 98.6
  
  // À FAIRE : Créer une Temperature en utilisant freezing()
  
  // À FAIRE : Appeler display() sur chaque température dans l'ordre
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet