Session BRE05 Help

Exercices de POO

Exercice 1

Consignes de l'exercice 1:

  • Créez une classe nommée Personne.

  • Cette classe doit avoir les attributs suivants :

    • $nom (string)

    • $age (int)

  • Le constructeur doit prendre en paramètres le nom et l'âge de la personne et initialiser les attributs correspondants.

  • Créez une méthode nommée afficherInformations() qui affiche le nom et l'âge de la personne dans un format lisible (ex: "Nom : John, Âge : 30 ans").

class Personne { public function __construct(private string $nom, private int $age) {} public function afficherInformations(): void { echo "Nom : " . $this->nom . ", Âge : " . $this->age . " ans\n"; } } // Exemple d'utilisation : $personne1 = new Personne("John", 30); $personne1->afficherInformations();

Exercice 2

Consignes de l'exercice 2 :

  • Créez une classe nommée Voiture.

  • Cette classe doit avoir les attributs suivants :

    • $marque (string)

    • $modele (string)

    • $couleur (string)

  • Le constructeur doit prendre en paramètres la marque, le modèle et la couleur de la voiture.

  • Créez une méthode nommée demarrer() qui affiche `"La voiture démarre !"

class Voiture { public function __construct(private string $marque, private string $modele, private string $couleur) {} public function demarrer(): void { echo "La voiture démarre !\n"; } } // Exemple d'utilisation : $voiture1 = new Voiture("Renault", "Clio", "Rouge"); $voiture1->demarrer();

Exercice 3

Consignes de l'exercice 3 :

  • Créez une classe nommée CompteBancaire.

  • Cette classe doit avoir les attributs suivants :

    • $solde (float) - privé

  • Le constructeur doit prendre en paramètre le solde initial du compte.

  • Créez une méthode nommée deposer() qui prend en paramètre le montant à déposer et ajoute ce montant au solde.

  • Créez une méthode nommée retirer() qui prend en paramètre le montant à retirer et soustrait ce montant au solde (si le solde est suffisant). Affichez un message d'erreur si le solde est insuffisant.

  • Créez une méthode nommée afficherSolde() qui affiche le solde actuel du compte.

class CompteBancaire { private float $solde; public function __construct(float $soldeInitial) { $this->solde = $soldeInitial; } public function deposer(float $montant): void { $this->solde += $montant; } public function retirer(float $montant): void { if ($this->solde >= $montant) { $this->solde -= $montant; } else { echo "Solde insuffisant !\n"; } } public function afficherSolde(): void { echo "Solde actuel : " . $this->solde . " €\n"; } } // Exemple d'utilisation : $compte1 = new CompteBancaire(1000.0); $compte1->deposer(500.0); $compte1->retirer(200.0); $compte1->afficherSolde();

Exercice 4

Consignes de l'exercice 4

  • Créez une classe nommée Animal. Cette classe doit avoir :

    • Un attribut $nom (string)

    • Un constructeur qui initialise le nom.

    • Une méthode emettreSon() qui affiche "Un son générique d'animal".

  • Créez deux classes qui héritent de Animal: Chien et Chat.

  • La classe Chien doit avoir une méthode emettreSon() qui affiche "Woof !".

  • La classe Chat doit avoir une méthode emettreSon() qui affiche "Miaou !".

class Animal { public function __construct(private string $nom) {} public function emettreSon(): void { echo "Un son générique d'animal\n"; } } class Chien extends Animal { public function emettreSon(): void { echo "Woof !\n"; } } class Chat extends Animal { public function emettreSon(): void { echo "Miaou !\n"; } } // Exemple d'utilisation : $animal1 = new Animal("Animal"); $animal1->emettreSon(); $chien1 = new Chien("Rex"); $chien1->emettreSon(); $chat1 = new Chat("Felix"); $chat1->emettreSon();

Exercice 5

Consignes de l'exercice 5

  • Créez une classe nommée Rectangle.

  • Cette classe doit avoir les attributs suivants :

    • $longueur (float)

    • $largeur (float)

  • Le constructeur doit prendre en paramètres la longueur et la largeur du rectangle.

  • Créez une méthode nommée calculerAire() qui retourne l'aire du rectangle.

class Rectangle { public function __construct(private float $longueur, private float $largeur) {} public function calculerAire(): float { return $this->longueur * $this->largeur; } } // Exemple d'utilisation : $rectangle1 = new Rectangle(5.0, 3.0); echo "L'aire du rectangle est : " . $rectangle1->calculerAire() . "\n";

Exercice 6

Consignes de l'exercice 6

  • Créez une classe nommée Personne (comme dans l'exercice 1).

  • Créez une classe nommée Employe qui hérite de Personne.

  • La classe Employe doit avoir un attribut supplémentaire : $salaire (float).

  • Le constructeur de Employe doit prendre en paramètres le nom, l'âge (pour la classe parent) et le salaire. Il doit appeler le constructeur de la classe parent pour initialiser le nom et l'âge.

  • Créez une méthode nommée afficherInformations() dans la classe `Employe qui affiche les informations de la personne (nom, âge) et le salaire.

class Personne { public function __construct(private string $nom, private int $age) {} public function afficherInformations(): void { echo "Nom : " . $this->nom . ", Âge : " . $this->age . " ans\n"; } } class Employe extends Personne { public function __construct(string $nom, int $age, private float $salaire) { parent::__construct($nom, $age); // Appel du constructeur parent } public function afficherInformations(): void { parent::afficherInformations(); // Appel de la méthode parent echo "Salaire : " . $this->salaire . " €\n"; } } // Exemple d'utilisation : $employe1 = new Employe("Alice", 30, 40000.0); $employe1->afficherInformations();

Exercice 7

Consignes de l'exercice 7

  • Créez une classe abstraite nommée Forme.

  • Cette classe doit avoir :

    • Une méthode abstraite nommée calculerAire() qui ne contient pas d'implémentation.

  • Créez deux classes concrètes qui héritent de Forme: Cercle et Triangle.

  • La classe Cercle doit avoir un attribut $rayon (float). Implémentez la méthode calculerAire() pour calculer l'aire du cercle.

  • La classe Triangle doit avoir des attributs $base (float) et $hauteur (float). Implémentez la méthode `calculerAire() pour calculer l'aire du triangle.

Calculer pi en PHP : doc de la fonction

abstract class Forme { abstract public function calculerAire(): float; } class Cercle extends Forme { public function __construct(private float $rayon) {} public function calculerAire(): float { return pi() * ($this->rayon * $this->rayon); } } class Triangle extends Forme { public function __construct(private float $base, private float $hauteur) {} public function calculerAire(): float { return 0.5 * $this->base * $this->hauteur; } } // Exemple d'utilisation : $cercle1 = new Cercle(5.0); echo "L'aire du cercle est : " . $cercle1->calculerAire() . "\n"; $triangle1 = new Triangle(4.0, 6.0); echo "L'aire du triangle est : " . $triangle1->calculerAire() . "\n";

Exercice 8

Consignes de l'exercice 8

  • Créez une classe nommée Vehicule.

  • Cette classe doit avoir un attribut $vitesse (int) déclaré protected.

  • Le constructeur doit prendre en paramètre la vitesse initiale du véhicule.

  • Créez une méthode nommée accelerer() qui augmente la vitesse de 10.

  • Créez une classe nommée Voiture qui hérite de Vehicule.

  • Créez une méthode nommée afficherVitesse() dans la classe `Voiture qui affiche la vitesse actuelle du véhicule.

class Vehicule { protected int $vitesse; public function __construct(int $vitesseInitiale) { $this->vitesse = $vitesseInitiale; } public function accelerer(): void { $this->vitesse += 10; } } class Voiture extends Vehicule { public function afficherVitesse(): void { echo "La vitesse actuelle est : " . $this->vitesse . " km/h\n"; } } // Exemple d'utilisation : $voiture1 = new Voiture(50); $voiture1->accelerer(); $voiture1->afficherVitesse();
06 March 2026