Aller au contenu principal

Introduction à la POO

Notions théoriques

Nous avons vu que la Programmation Orientée Objet (POO) est une façon de programmer (un paradigme) qui nous permet d'organiser le code en objets.

Voyons maintenant comment construire et utiliser des objets en PHP.


Une classe

Définition : Une classe est un modèle (un plan) qui définit les propriétés (état) et les méthodes (comportement) d’un type d’objet. C’est une structure de données qui sert à créer des objets.

Explication : Une classe est comme un moule à partir duquel on peut créer plusieurs objets. Elle définit les caractéristiques communes à tous les objets de ce type. En PHP, on utilise le mot-clé class pour déclarer une classe. Exemple :

<?php
class Voiture {
// Propriétés (état de l'objet)
public $couleur;
public $marque;

// Méthodes (comportement)
public function klaxonner() {
print("Tut tut!");
}
}
?>

Une classe est comme un plan (un modèle) pour créer un objet.

Une classe peut contenir :

  • des propriétés (variables) qui décrivent l'état de l'objet,
  • et des méthodes (fonctions) qui décrivent le comportement de l'objet.
info

Lorsque l'on crée un objet à partir de cette classe (le modèle), on dit que l'on crée une instance de cette classe.


Un objet

Définition :
Un objet est une instance (une réalisation concrète) d’une classe. Il représente une entité qui possède un état (des propriétés) et un comportement (des méthodes).

Explication :
Dans la POO, l’objet est l’élément central. La classe est le « plan » (le modèle), l’objet est la « maison construite » à partir de ce plan. Chaque objet est indépendant et peut interagir avec d’autres objets. En PHP, on accède à ses propriétés et méthodes via l’opérateur ->.

Exemple :

  1. En PHP, nous définissons une classe avec le mot-clé class, suivi du nom de la classe.
  2. Nous pouvons ensuite créer un objet (une instance de la classe) avec le mot-clé new.
<?php
class Voiture {
// Propriétés (état de l'objet)
public $marque;
public $couleur;

// Méthode (comportement)
public function demarrer() {
echo $this->marque . " démarre !\n";
}
}

// Création d'un objet (instance)
$maVoiture = new Voiture();
$maVoiture->marque = "Peugeot";
$maVoiture->couleur = "Rouge";

$maVoiture->demarrer(); // Affiche : Peugeot démarre !
?>

Dans cet exemple, Voiture est la classe (le modèle), et $maVoiture est un objet (une instance) de cette classe. L’objet $maVoiture a des propriétés (marque et couleur) et une méthode (demarrer()) qui lui permettent de représenter une voiture spécifique et de se comporter comme une voiture (en démarrant).

Héritage (Inheritance)

Définition :
L’héritage est un mécanisme qui permet à une classe enfant (ou dérivée) d’acquérir les propriétés et méthodes d’une classe parente (ou de base), en utilisant le mot-clé extends.

Explication :
L’héritage permet la réutilisation du code et modélise une relation « est-un » (is-a). PHP ne supporte que l’héritage simple (une seule classe parente). La classe enfant peut redéfinir (surcharger) les méthodes de la classe parente.

Exemple :

<?php
class Vehicule { // Classe parente
protected $vitesse = 0;

public function accelerer($kmh) {
$this->vitesse += $kmh;
echo "Vitesse : " . $this->vitesse . " km/h\n";
}
}

class Voiture extends Vehicule { // Classe enfant
public $nombrePortes = 5;

public function klaxonner() {
echo "Pouet pouet !\n";
}
}

$maVoiture = new Voiture();
$maVoiture->accelerer(50); // Hérité de Vehicule
$maVoiture->klaxonner(); // Propre à Voiture
?>

Exemple pratique

Voyons comment nous pouvons utiliser notre classe Voiture pour créer des objets et les utiliser.

  • Dans votre répertoire "Documents" créez le répertoire tp_classe_voiture.

  • Dans ce répertoire créez le fichier main.php :

    <?php
    // Utiliser la classe 'Voiture'
    print("Utiliser la classe 'Voiture' \n\n");
  • Testez le fonctionnement de ce fichier :

    php main.php

  • Saisir le code de la classe 'Voiture' :

    class Voiture {
    // Propriétés
    public $couleur;
    public $marque;

    // Méthodes
    public function klaxonner() {
    print("Tut tut!");
    }
    }
  • Saisir le code pour utiliser la classe 'Voiture' :

    // Création d'un objet
    $maVoiture = new Voiture();

    // Définition des propriétés
    $maVoiture->couleur = "rouge";
    $maVoiture->marque = "Ferrari";

    // Utilisation d'une méthode
    $maVoiture->klaxonner(); // Affiche "Tut tut!"

Test de mémorisation/compréhension


Qu'est-ce qu'un objet en programmation orientée objet ?


Comment définissons-nous une classe en PHP ?


Comment créons-nous un objet en PHP ?


Qu'est-ce qu'une propriété dans une classe ?


Qu'est-ce qu'une méthode dans une classe ?