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é 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 :
- 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 : 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 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.