Constructeurs
Fait partie de la section Programmation Orientée Objet du Journey C# de Coddy — leçon 7 sur 70.
Un constructeur est une méthode spéciale qui s'exécute lorsque vous créez un objet. Il initialise les propriétés et les champs de l'objet.
Constructeur par défaut sans paramètres
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Constructeur par défaut
public Book()
{
Title = "Unknown";
Author = "Unknown";
}
}Constructeur paramétré
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Constructeur avec paramètres
public Book(string title, string author)
{
Title = title;
Author = author;
}
}Surcharge de constructeur - plusieurs constructeurs
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Constructeur avec deux paramètres
public Book(string title, string author)
{
Title = title;
Author = author;
Pages = 0;
}
// Constructeur avec trois paramètres
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
}Chaînage de constructeurs avec this
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Constructeur principal
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
// Appelle le constructeur principal avec un nombre de pages par défaut
public Book(string title, string author) : this(title, author, 0)
{
}
}Création d'objets avec différents constructeurs
Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);Les constructeurs ont le même nom que la classe et n'ont pas de type de retour. Ils s'exécutent automatiquement lorsque vous utilisez le mot-clé new. Vous pouvez avoir plusieurs constructeurs avec des paramètres différents (surcharge).
Défi
MoyenCréez trois constructeurs pour la classe Product en utilisant la surcharge et le chaînage de constructeurs :
- Un constructeur avec 3 paramètres : name, price, et stock
- Un constructeur avec 2 paramètres : name et price (stock par défaut à 0)
- Un constructeur par défaut sans paramètres (name = "Unknown", price = 0, stock = 0)
Utilisez le chaînage de constructeurs avec this pour éviter la duplication de code.
Aide-mémoire
Un constructeur est une méthode spéciale qui s'exécute lorsque vous créez un objet. Il initialise les propriétés de l'objet.
Les constructeurs ont le même nom que la classe et n'ont pas de type de retour. Ils s'exécutent automatiquement lorsque vous utilisez le mot-clé new.
Constructeur par défaut sans paramètres :
public class Book
{
public string Title { get; set; }
public Book()
{
Title = "Unknown";
}
}Constructeur paramétré :
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public Book(string title, string author)
{
Title = title;
Author = author;
}
}Surcharge de constructeur - plusieurs constructeurs avec des paramètres différents :
public class Book
{
public string Title { get; set; }
public int Pages { get; set; }
public Book(string title)
{
Title = title;
Pages = 0;
}
public Book(string title, int pages)
{
Title = title;
Pages = pages;
}
}Chaînage de constructeurs avec this pour éviter la duplication de code :
public class Book
{
public string Title { get; set; }
public int Pages { get; set; }
public Book(string title, int pages)
{
Title = title;
Pages = pages;
}
public Book(string title) : this(title, 0)
{
}
}Création d'objets avec différents constructeurs :
Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);Essayez vous-même
using System;
class Program
{
static void Main()
{
string name = Console.ReadLine();
decimal price = decimal.Parse(Console.ReadLine());
int stock = int.Parse(Console.ReadLine());
Product product1 = new Product(name, price, stock);
Product product2 = new Product();
Product product3 = new Product("Keyboard", 79.99m);
Console.WriteLine($"Product 1: {product1.Name} - ${product1.Price} (Stock: {product1.Stock})");
Console.WriteLine($"Product 2: {product2.Name} - ${product2.Price} (Stock: {product2.Stock})");
Console.WriteLine($"Product 3: {product3.Name} - ${product3.Price} (Stock: {product3.Stock})");
}
}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
1Fondamentaux de la POO
Fichiers externesEspaces de noms et directivesIntro aux classes et objetsLe mot-clé 'this'Méthodes et paramètresChamps vs PropriétésConstructeursInitialiseurs d'objetsRécapitulatif - Calculatrice simple4Héritage
Syntaxe de base de l'héritage (:)Le mot-clé 'base'Mots-clés Virtual & OverrideClasses scelléesLa classe de base 'object'Récapitulatif - Hiérarchie des employés7Fonctionnalités avancées
Surcharge d'opérateursIndexeurs (this[])Redéfinition de ToString()Méthodes d'extensionRécapitulatif - Liste personnalisée10Patrons de conception - Partie 1
Introduction aux patrons de conceptionSingleton Thread-SafePatron FabriquePatron Observateur (Événements)Patron Stratégie2Propriétés et membres statiques
Propriétés auto-implémentéesPropriétés en lecture/écriture seuleChamps et méthodes statiquesClasses statiquesMembres à corps d'expression5Polymorphisme & Interfaces
Polymorphisme : Compilation vs ExécutionInterface vs Classe AbstraiteInterfaces MultiplesInterfaces ExplicitesUpcasting & DowncastingRécapitulatif - Calculateur de Formes8Concepts avancés de la POO
Composition plutôt qu'héritageGénériques (Classes et Méthodes)Délégués et ÉvénementsAttributs et RéflexionIDisposable et l'instruction usingBases de l'Injection de Dépendances11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Architecture des classes
Données d'instance vs statiquesMots-clés 'readonly' & 'const'Champs de supportRécapitulatif - Gestionnaire de compte bancaire6Encapsulation
Modificateurs d'accèsPropriétés pour l'encapsulationImplémentation du masquage de donnéesPatterns d'immuabilitéRécapitulatif - Dossiers d'étudiants12Projet : Système de gestion de bibliothèque
Structure du projetModèles Livre et Utilisateur