New Technology Design

Programmation C#

Module 2: Les classes en C#

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.

  1. 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
}

  1. 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;
    }
}

  1. 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 programme
  • private : accessible uniquement depuis la classe elle-même
  • protected : 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
}

  1. 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éthode Main 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