Chapitre 15 : Introduction à la POO

Écouter la leçon Lecture audio assistée par IA

1. Qu’est-ce que la POO ?

La programmation orientée objet (POO) est un paradigme de programmation qui repose sur des objets. Un objet est une instance d’une classe, qui regroupe des données (propriétés) et des fonctions (méthodes).

2. Déclarer une classe simple

class Voiture {
  public $marque = "Toyota";

  public function klaxonner() {
    echo "Tut tut !";
  }
}

3. Créer un objet

$maVoiture = new Voiture();
echo $maVoiture->marque;         // Affiche Toyota
$maVoiture->klaxonner();         // Affiche Tut tut !

4. Le constructeur (__construct)

class Utilisateur {
  public $nom;

  public function __construct($nom) {
    $this->nom = $nom;
  }

  public function saluer() {
    echo "Bonjour " . $this->nom;
  }
}

$user = new Utilisateur("Alice");
$user->saluer();

5. Propriétés publiques, privées et protégées

  • public : accessible partout
  • private : accessible uniquement dans la classe
  • protected : accessible dans la classe et ses enfants
class Compte {
  private $solde = 100;

  public function getSolde() {
    return $this->solde;
  }
}

6. Héritage

class Animal {
  public function parler() {
    echo "Je fais un bruit.";
  }
}

class Chien extends Animal {
  public function parler() {
    echo "Wouf !";
  }
}

$rex = new Chien();
$rex->parler(); // Wouf !

Conclusion

Ce chapitre t’a introduit aux bases de la POO en PHP. Tu peux maintenant organiser ton code en objets, ce qui est indispensable pour des projets de plus grande échelle. La suite logique sera de créer tes propres classes métier, gérer les erreurs proprement, et utiliser des fichiers bien organisés.

Évaluation des acquis

Quiz du chapitre 15

Correction immédiate
Q1 Qu'est-ce qu'une classe en POO ?
Q2 Quel mot-clé est utilisé pour créer une nouvelle instance d'une classe (un objet) ?
Ateliers pratiques & Projets

Testez vos compétences avec nos exercices guidés et le tuteur IA.

Ateliers pratiques & Corrigés détaillés

Ateliers pratiques & Corrigés

#1 — Définir une classe
Atelier #1

Crée une classe Voiture vide et instancie un objet $maVoiture.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php class Voiture { // Code de la classe } $maVoiture = new Voiture(); var_dump($maVoiture); ?>
#2 — Propriétés
Atelier #2

Ajoute une propriété publique $marque à la classe Voiture. Assigne 'Toyota' et affiche-la.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php class Voiture { public $marque; } $v = new Voiture(); $v->marque = "Toyota"; echo "Ma voiture est une " . $v->marque; ?>
#3 — Méthodes
Atelier #3

Ajoute une méthode demarrer() qui affiche 'Vroum !'.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php class Voiture { public function demarrer() { echo "Vroum !"; } } $v = new Voiture(); $v->demarrer(); ?>
#4 — Constructeur
Atelier #4

Utilise __construct($marque) pour initialiser la marque lors de la création de l'objet.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php class Voiture { public $marque; public function __construct($m) { $this->marque = $m; } } $v = new Voiture("Peugeot"); echo $v->marque; ?>
#5 — Visibilité (Private)
Atelier #5

Rends la propriété $marque privée et crée une méthode getMarque() pour la lire (Getter).

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php class Voiture { private $marque; public function __construct($m) { $this->marque = $m; } public function getMarque() { return $this->marque; } } $v = new Voiture("Renault"); echo $v->getMarque(); // echo $v->marque; // Erreur car private ?>
Besoin d'aide ?
Tuteur Virtuel
Bonjour ! Je suis votre tuteur virtuel. Comment puis-je vous aider avec ce cours aujourd'hui ?
Historique des conversations
Chargement...