Créa-blog

Ressources pour développeur web

Méthode et propriété : Programmation orientée objet en PHP

Accueil PHP 8 Méthode et propriété : Programmation orientée objet en PHP

Dans ce chapitre, nous allons explorer les propriétés et les méthodes des classes en PHP. Comprendre comment définir et utiliser ces éléments est essentiel pour créer des objets et les manipuler efficacement en programmation orientée objet ou POO.

Propriété en programmation orientée objet en PHP

Les propriétés d’une classe représentent les caractéristiques ou les données associées (variables) à un objet. Elles définissent l’état de l’objet. Voici comment définir et utiliser des propriétés dans une classe :

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

Dans cet exemple, nous avons déclaré trois propriétés publiques : $marque, $modele et $couleur.

Pour mieux comprendre cela, imaginez notre classe Voiture. Les propriétés de cette classe pourraient inclure des caractéristiques telles que la marque, le modèle, la couleur, le kilométrage, etc. Chaque objet de cette classe aurait ses propres valeurs pour ces propriétés, qui détermineraient l’état spécifique de cette voiture.

Les propriétés permettent donc de stocker des informations spécifiques à chaque objet et de les manipuler selon les besoins. Par exemple, vous pourriez créer une voiture avec une marque Peugeot, un modèle 208 et une couleur Rouge. Ensuite, vous pourriez modifier la couleur de cette voiture en Vert ou augmenter son kilométrage en fonction de son utilisation.

Pour rappel, la visibilité des propriétés et des méthodes peut être définie à l’aide de mots-clés tels que public, protected et private.

  • Public : Les propriétés et méthodes publiques sont accessibles depuis n’importe où, à l’intérieur ou à l’extérieur de la classe.
  • Protected : Les propriétés et méthodes protégées sont accessibles uniquement depuis la classe elle-même et les classes héritières.
  • Private : Les propriétés et méthodes privées ne sont accessibles qu’à l’intérieur de la classe où elles sont définies.

Méthode en programmation orientée objet

Les méthodes d’une classe sont des fonctions associées à un objet. Elles définissent les actions ou les comportements que l’objet peut effectuer. Voici comment définir et utiliser des méthodes dans une classe :

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

    // Méthodes
    public function demarrer() {
        echo "La voiture démarre.";
    }

    public function arreter() {
        echo "La voiture s'arrête.";
    }
}

Dans cet exemple, nous avons déclaré deux méthodes publiques : demarrer() et arreter(). Pour l’instant, nos deux méthodes ne font qu’afficher du texte.

Accès au propriété et méthode

Une fois que vous avez instancié un objet à partir de votre classe, vous pouvez accéder à ses propriétés et méthodes en utilisant l’opérateur de résolution de portée ->. Par exemple :

// Instanciation d'un objet de la classe Voiture
$maVoiture = new Voiture();

// Accès aux propriétés et appel des méthodes
$maVoiture->marque = "Peugeot";
$maVoiture->modele = "208";
$maVoiture->couleur = "Rouge";

$maVoiture->demarrer();
$maVoiture->arreter();

Pour commencer, nous avons crée un nouvel objet de la classe Voiture en utilisant le mot-clé new. L’objet est assigné à la variable $maVoiture.

Une fois que l’objet est créé, nous pouvons accéder à ses propriétés et appeler ses méthodes en utilisant l’opérateur ->.

  • $maVoiture->marque = ‘Peugeot’; : Cela affecte la valeur Peugeot à la propriété marque de l’objet $maVoiture.
  • $maVoiture->modele = ‘208’; : Cela affecte la valeur 208 à la propriété modele de l’objet $maVoiture.
  • $maVoiture->couleur = ‘Rouge’; : Cela affecte la valeur Rouge à la propriété couleur de l’objet $maVoiture.

$maVoiture->demarrer(); : Cela appelle la méthode demarrer() de l’objet $maVoiture. Cette méthode pourrait contenir du code pour démarrer la voiture (même si pour l’instant, il ne fait qu’afficher un texte).

$maVoiture->arreter(); : Cela appelle la méthode arreter() de l’objet $maVoiture. Cette méthode pourrait contenir du code pour arrêter la voiture.

Ce code crée donc un objet représentant une voiture, définit ses propriétés (marque, modèle, couleur) et appelle des méthodes pour effectuer des actions sur cette voiture (démarrer, arrêter). Cela démontre comment les propriétés et les méthodes d’une classe peuvent être utilisées pour modéliser et manipuler des objets dans un programme.

Redéfinition de Méthode et propriété

La surcharge permet de redéfinir une méthode ou une propriété dans une classe enfant, lui donnant ainsi une nouvelle implémentation tout en conservant le même nom que la méthode ou la propriété dans la classe parente.

Redéfinition de Méthode

La surcharge de méthodes en PHP vous permet de redéfinir une méthode dans une classe enfant, en remplaçant ainsi l’implémentation de la classe parente. Cela permet à la classe enfant de modifier ou d’étendre le comportement de la méthode de la classe parente.

Pour surcharger une méthode, déclarez simplement une méthode avec le même nom dans la classe enfant. PHP utilisera alors la version de la méthode définie dans la classe enfant au lieu de celle de la classe parente.

class ParentClass {
    public function hello() {
        echo "Bonjour du parent!";
    }
}

class ChildClass extends ParentClass {
    public function hello() {
        echo "Bonjour de l'enfant!";
    }
}

// Utilisation
$parent = new ParentClass();
$parent->hello(); // Affichera "Bonjour du parent!"

$child = new ChildClass();
$child->hello(); // Affichera "Bonjour de l'enfant!"

Dans cet exemple, la méthode hello() est surchargée dans la classe enfant ChildClass, remplaçant ainsi l’implémentation de la classe parente ParentClass.

Redéfinition de Propriétés

La surcharge de propriétés en PHP vous permet de redéfinir une propriété dans une classe enfant, lui donnant ainsi une nouvelle valeur ou une nouvelle visibilité par rapport à la classe parente.

Pour surcharger une propriété, déclarez simplement une propriété avec le même nom dans la classe enfant. PHP utilisera alors la version de la propriété définie dans la classe enfant au lieu de celle de la classe parente.

class ParentClass {
    public $nom = "Parent";
}

class ChildClass extends ParentClass {
    public $nom = "Enfant";
}

// Utilisation
$parent = new ParentClass();
echo $parent->nom; // Affichera "Parent"

$child = new ChildClass();
echo $child->nom; // Affichera "Enfant"

Dans cet exemple, la propriété $nom est surchargée dans la classe enfant ChildClass, lui donnant ainsi une valeur différente de celle de la classe parente ParentClass.

la surcharge de méthodes et de propriétés en PHP vous permet de modifier ou d’étendre le comportement des classes parentes dans les classes enfants, offrant ainsi une grande flexibilité dans la conception de vos applications. Utilisez ces fonctionnalités avec soin pour maintenir la cohérence et la clarté de votre code.