Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Constructeurs de Classe | Introduction à la Programmation Orientée Objet (POO)
C# au-delà des Bases
course content

Contenu du cours

C# au-delà des Bases

C# au-delà des Bases

1. Structures Supplémentaires et Gestion des Fichiers
2. Structures et Énumérateurs
3. Introduction à la Programmation Orientée Objet (POO)
4. Essentiels de la POO
5. Principes de la POO

book
Constructeurs de Classe

Un constructeur de classe est le même qu'un constructeur de structure. C'est une méthode qui est exécutée lorsqu'un objet est créé.

La syntaxe pour créer un constructeur est la suivante :

cs

index

copy
1234567
class className { // ... other class code public className() { // code } }

Par exemple :

cs

index

copy
1234567891011121314151617
using System; class Player { public Player() { Console.WriteLine("A new player is created"); } } public class HelloWorld { public static void Main(string[] args) { Player p1 = new Player(); Player p2 = new Player(); Player p3 = new Player(); } }

Vous pouvez voir à partir de la sortie que l'instruction Console.WriteLine à l'intérieur du constructeur Player est exécutée chaque fois qu'un nouvel objet est créé.

Voici un exemple de code du chapitre Constructeurs de structures. Le terme static est expliqué dans les commentaires car il est plus pertinent ici, cependant, il n'est pas nécessaire de le comprendre complètement car ce concept sera expliqué en détail dans les sections ultérieures.

cs

index

copy
1234567891011121314151617181920212223
using System; struct Program { public static int totalPlayers = 0; struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

Pour convertir la structure Player en une classe, il suffit de changer le terme struct en class :

cs

index

copy
12345678910111213141516171819202122232425262728
using System; class Program { // Unlike normal fields, a 'static' field can hold data even if there's no object. // Static fields have the same value for all objects. // Changing the value of a static field from one object changes it for all objects. // In this case the static field is part of the 'Program' class which represents the program itself // Therefore this field is essentially a global variable public static int totalPlayers = 0; struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

De même, nous pouvons avoir des constructeurs avec certains arguments. Habituellement, cette méthode est utilisée pour faciliter l'initialisation des champs de classe :

cs

index

copy
12345678910111213141516171819202122232425262728
using System; class Point { public double x; public double y; public Point(double x, double y) { // 'this' keyword is also used in classes just like how its used in structs this.x = x; this.y = y; } public void showCoordinates() { Console.WriteLine($"({x}, {y})"); } } class Program { static void Main(string[] args) { Point p1 = new Point(50, 70); Point p2 = new Point(70, 90); p1.showCoordinates(); p2.showCoordinates(); } }

À ce stade, nous avons couvert la plupart des concepts de base des Classes, et à en juger par la syntaxe et le comportement, les Classes semblent être exactement les mêmes que les Structs, cependant, ce n'est pas vraiment le cas. Comme indiqué dans le premier chapitre de cette section, les Structs sont une version limitée des Classes qui ne fournissent qu'une fonctionnalité de base, tandis que les fonctionnalités des Classes sont beaucoup plus complexes et étendues. Dans cette section, nous avons couvert toutes les fonctionnalités similaires entre les Classes et les Structs. Dans les deux prochaines sections, nous apprendrons toutes les subtilités des classes et de la programmation orientée objet.

1. Quand une méthode constructeur est-elle appelée ?

2. Quel sera le nom d'une méthode constructeur dans une classe appelée "Animal" ?

3. Quel mot-clé est utilisé avant le nom d'un constructeur ?

Quand une méthode constructeur est-elle appelée ?

Quand une méthode constructeur est-elle appelée ?

Sélectionnez la réponse correcte

Quel sera le nom d'une méthode constructeur dans une classe appelée "Animal" ?

Quel sera le nom d'une méthode constructeur dans une classe appelée "Animal" ?

Sélectionnez la réponse correcte

Quel mot-clé est utilisé avant le nom d'un constructeur ?

Quel mot-clé est utilisé avant le nom d'un constructeur ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 9
We're sorry to hear that something went wrong. What happened?
some-alt