Exercices poo csharp
Exercices : Programmation Orientée Objet C#
Entraînement progressif : Classes, Objets, Propriétés, Héritage
Classes et Instances
Rappel
Une classe est un modèle (ex: Livre), une instance est un objet concret créé avec new (ex: monLivre).
Débutant
Exercice 1.1 — La classe Livre
Créer une classe
Livre avec 3 champs publics : Titre (string), Auteur (string), NombrePages (int).
Débutant
Exercice 1.2 — Instanciation
Dans le
Main, créer deux objets Livre différents (ex: "Harry Potter" et "Le Seigneur des Anneaux"). Affecter des valeurs à leurs champs.
Intermédiaire
Exercice 1.3 — Affichage
Écrire une méthode
static string AfficherInformations() qui
affiche dans la console les informations des deux livres sous la forme :"Livre : [Titre] écrit par [Auteur] ([Pages] pages)".
Propriétés { get; set; }
Rappel
Utilisez les propriétés auto-implémentées public int Age { get; set; } ou complètes pour valider des données.
Débutant
Exercice 2.1 — Classe Produit
Créer une classe
Produit avec une propriété Prix (double) et Nom (string).
Intermédiaire
Exercice 2.2 — Prix positif uniquement
Modifier la propriété
Indice : Utiliser une variable privée
Prix pour qu'on ne puisse pas lui affecter une valeur négative (afficher un message d'erreur si on essaie).Indice : Utiliser une variable privée
_prix et le bloc set.
Avancé
Exercice 2.3 — Propriété en lecture seule
Ajouter une propriété
Reference qui peut être lue (get) mais pas modifiée de l'extérieur (private set ou pas de set), initialisée dans le constructeur.
Constructeurs
Débutant
Exercice 3.1 — Constructeur Etudiant
Créer une classe
Etudiant avec Nom, Prenom et Moyenne. Ajouter un constructeur qui prend ces 3 paramètres pour initialiser l'objet.
Intermédiaire
Exercice 3.2 — Surcharge
Ajouter un deuxième constructeur qui ne prend que le
Nom et le Prenom, et fixe la Moyenne à 10 par défaut.
Avancé
Exercice 3.3 — Chaînage (this)
Faire en sorte que le deuxième constructeur appelle le premier en utilisant le mot-clé
this.
Avancé
Exercice 3.4 — Méthode Mention
Ajouter une méthode
string ObtenirMention() qui retourne "Très bien" si moyenne >= 16, "Bien" si >= 14, "Passable" sinon.
Méthodes d'instance
Débutant
Exercice 4.1 — Classe Cercle
Créer une classe
Cercle avec une propriété Rayon (double).
Intermédiaire
Exercice 4.2 — Calculs
Ajouter deux méthodes :
-
-
Utiliser
-
CalculerAire() qui retourne la surface (Pi * R * R).-
CalculerPerimetre() qui retourne le périmètre (2 * Pi * R).
Utiliser
Math.PI.
Intermédiaire
Exercice 4.3 — Méthode ToString()
Surcharger la méthode
ToString() (avec override) pour qu'elle retourne : "Cercle de rayon [R]". Tester avec Console.WriteLine(monCercle).
Avancé
Exercice 4.4 — Action
Ajouter une méthode
void Agrandir(double facteur) qui multiplie le rayon par le facteur donné. (Ex: Agrandir(2) double le rayon).
Héritage & Polymorphisme
Débutant
Exercice 5.1 — Classe Mère Personnage
Créer une classe
Personnage avec une propriété Nom et une méthode Attaquer() qui affiche "..." dans la console.
Intermédiaire
Exercice 5.2 — Classes Filles
Créer deux classes :
- Le Guerrier doit afficher "Coup d'épée !" quand il attaque.
- Le Magicien doit afficher "Boule de feu !".
Guerrier et Magicien qui héritent de Personnage.- Le Guerrier doit afficher "Coup d'épée !" quand il attaque.
- Le Magicien doit afficher "Boule de feu !".
Avancé
Exercice 5.3 — Polymorphisme (Liste de personnages)
Dans le Main, créer une
List<Personnage>. Ajouter un Guerrier et un Magicien dedans. Faire une boucle foreach pour faire attaquer chaque personnage de la liste.
Avancé
Exercice 5.4 — Méthode SeDeplacer
Ajouter une méthode virtuelle
- Le Guerrier : "Le guerrier court avec son armure".
- Le Magicien : "Le magicien se téléporte".
Tester dans la boucle.
SeDeplacer() dans Personnage ("Le personnage marche").- Le Guerrier : "Le guerrier court avec son armure".
- Le Magicien : "Le magicien se téléporte".
Tester dans la boucle.