Objectifs du cours
- Comprendre les bases de la programmation orientée objet en C#
- Définir et expliquer les concepts fondamentaux d’une classe en C#.
- Comprendre la syntaxe et la structure de base d’une classe.
- Maîtriser les membres d’une classe
- Identifier et différencier les différents types de membres d’une classe : champs, propriétés, méthodes et constructeurs.
- Apprendre à déclarer et utiliser ces membres efficacement.
- Contrôler l’accès aux membres d’une classe
- Comprendre et utiliser les modificateurs d’accès (public, privé, protected) pour encapsuler les données et méthodes.
- Apprendre à sécuriser et gérer l’accès aux membres d’une classe en fonction des besoins du programme.
- Utiliser les classes statiques
- Définir et expliquer les classes statiques en C#.
- Apprendre à créer et utiliser des classes statiques pour des opérations ou des données partagées à travers le programme.
Introduction
Les classes sont des éléments fondamentaux de la programmation orientée objet (POO) en C#. Elles permettent de créer des modèles pour des objets réels, regroupant leurs caractéristiques (attributs) et leurs comportements (méthodes). Ce cours vise à vous familiariser avec les concepts clés des classes en C#, en les illustrant avec des exemples de code concrets.
- Définir une Classe en C#
Une classe est définie à l’aide du mot-clé class
suivi du nom de la classe et de deux accolades {}
qui englobent ses membres : champs, propriétés, méthodes et constructeurs.
class NomClasse
{
// Membres de la classe
}
Exemple : Définir une classe Etudiant
pour représenter les étudiants d’une université.
class Etudiant
{
// Membres de la classe pour représenter un étudiant
}
- Membres d’une Classe
Champs : Les champs représentent les attributs ou caractéristiques d’un objet. Ils sont déclarés à l’intérieur de la classe en utilisant un type de données et un nom.
class Etudiant
{
// Champs pour les attributs d'un étudiant
string nom;
int age;
string filiere;
}
Propriétés : Les propriétés encapsulent les champs, offrant un accès contrôlé et sécurisé aux attributs d’un objet. Elles sont définies à l’aide du mot-clé property
suivi du type de retour, du nom de la propriété et d’un bloc d’accès (get et/ou set) pour lire et/ou modifier la valeur du champ associé.
class Etudiant
{
// Propriétés pour les attributs d'un étudiant
public string Nom { get; set; }
public int Age { get; set; }
public string Filiere { get; set; }
}
Méthodes : Les méthodes représentent les comportements ou actions que les objets peuvent effectuer. Elles sont définies à l’aide du mot-clé method
suivi du nom de la méthode, des parenthèses contenant les paramètres (optionnels), du type de retour et d’un bloc d’instructions.
class Etudiant
{
// Méthodes pour les actions d'un étudiant
public void AfficherIdentite()
{
Console.WriteLine($"Nom: {Nom}, Age: {Age}, Filière: {Filiere}");
}
}
Constructeurs : Les constructeurs sont des méthodes spéciales qui permettent d’initialiser l’état d’un objet lors de sa création. Ils sont définis à l’aide du nom de la classe suivi des parenthèses contenant les paramètres (optionnels) et d’un bloc d’instructions pour initialiser les champs.
class Etudiant
{
// Constructeurs pour initialiser un étudiant
public Etudiant(string nom, int age, string filiere)
{
Nom = nom;
Age = age;
Filiere = filiere;
}
}
- Accès aux Membres d’une Classe
Modificateurs d’Accès : Les modificateurs d’accès contrôlent la visibilité des membres d’une classe.
public
: accessible depuis n’importe où dans le programmeprivate
: accessible uniquement depuis la classe elle-mêmeprotected
: accessible depuis la classe elle-même et ses classes dérivées
class Etudiant
{
private string nom; // Attribut privé
public string Nom { get; set; } // Propriété publique
public void AfficherIdentite() { Console.WriteLine(nom); } // Méthode accessible depuis la classe et ses dérivées
}
- Classes Statiques
Les classes statiques sont des classes qui ne contiennent que des membres statiques. Ces membres appartiennent à la classe elle-même et non à ses instances (objets). Ils sont accessibles via le nom de la classe sans instancier d’objet.
class Utilitaire
{
public static int CalculerSomme(int a, int b)
{
return a + b;
}
}
int resultat = Utilitaire.CalculerSomme(5, 3); // Accès à la méthode statique sans instancier d'objet
Exemple Complet : Gestion d’Étudiants
Considérons le cas d’un programme permettant de gérer des étudiants. Nous allons implémenter la classe Etudiant
vue précédemment et l’utiliser pour créer et manipuler des objets étudiants.
class Etudiant
{
public string Nom { get; set; }
public int Age { get; set; }
public string Filiere { get; set; }
public Etudiant(string nom, int age, string filiere)
{
Nom = nom;
Age = age;
Filiere = filiere;
}
public void AfficherIdentite()
{
Console.WriteLine($"Nom: {Nom}, Age: {Age}, Filière: {Filiere}");
}
}
class Programme
{
static void Main(string[] args)
{
// Créer des étudiants
Etudiant etudiant1 = new Etudiant("Pierre Dupont", 20, "Informatique");
Etudiant etudiant2 = new Etudiant("Marie Dubois", 22, "Mathématiques");
// Afficher les identités
etudiant1.AfficherIdentite();
etudiant2.AfficherIdentite();
}
}
Dans cet exemple :
- La classe
Programme
contient la méthodeMain
qui est le point d’entrée du programme. - On crée deux instances (objets) de la classe
Etudiant
en utilisant le mot-clénew
. - On utilise les propriétés de chaque étudiant pour définir ses attributs (nom, âge, filière).
- La méthode
AfficherIdentite
est appelée sur chaque étudiant pour afficher ses informations.
Ce code permet de créer et d’utiliser des objets Etudiant
pour gérer des informations basiques sur les étudiants. Vous pouvez étendre ce programme en ajoutant des fonctionnalités supplémentaires, comme la possibilité de modifier les informations d’un étudiant, de calculer la moyenne d’un groupe d’étudiants, etc.
J’espère que ce cours détaillé vous a permis de bien comprendre les concepts clés des classes en C#. N’hésitez pas à poser des questions si vous avez besoin de plus de précisions.
Leave a Reply