Programmation orientée objet (POO)

Donner une définition de la programmation orientée objet

La POO (Programmation Orienté Objet) consiste à définir et faire interagir entre eux des “objets” pour faciliter l’écriture et la maintenance du code. Dans le jargon on dis le paradigme orienté objet faisant référence à une approche, une méthode de programmation. L'objet est alors la représentation d'une class avec des propriétés et des méthodes qui constituent l'objet. La POO offre les avantages d'un code réutilisable, d'une conception de l'algorithme plus clair et organisé, d'un code modulaire et de son adaptabilité aux Design Pattern.

Qu’est-ce qu’une classe ? Comment la déclare-t-on ?

Une Class un est patron de conception et de modélisation de données, définissant un ensemble de propriétés (atributs) et de comportement (méthodes) qui composent la structure de chaque objet

Qu’est-ce qu’un objet?

Un « objet » est une représentation d'une chose matérielle ou immatérielle du réel à laquelle on associe des propriétés et des actions.

Définir la notion de propriété / attribut / méthode

- Les « attributs » (aussi appelés « données membres ») sont les caractères propres à un objet. - Les « méthodes » sont les actions applicables à un objet.

Qu’est-ce que la visibilité d’une propriété ou d’une méthode ? Citer les différents types de visibilité

La visibilité d'une propriété ou d'une méthode est son accessibilité ou son utilisation, à partir d'autres parties de code a l'interieur d'un programme. Propriétés ou méthodes de Class:

Quelle est la méthode spécifique utilisée pour créer un nouvel objet à partir d’une classe ?

La méthode spécifique pour construire un nouvel objet s'appel le constructeur. Elle fait partie des méthodes magique de PHP qui sont appelées dans des situations spécifique.

Qu’est-ce que l’encapsulation ?

L’encapsulation permet de restreindre l’accès direct aux états et empêche la modification de l’objet hors de ses méthodes. Ainsi, l’encapsulation est un mécanisme qui empêche donc de modifier ou d’accéder aux objets par un autre moyen que les méthodes proposées, et de ce fait, permet de garantir l’intégrité des objets.

Que signifie « étendre une classe » ? Quelle est le concept clé mis en œuvre ? Donner un exemple

Étendre une Class signifie qu'elle va hérité des propriétés et des méthodes d'une autre Class tout en ajoutant ou modifiant ces propriétés ou son comportement (ces fonctionnalités), c'est le concept clé mis en oeuvre de l'héritage. - Un Animal sera une class avec une propriété espèce, qui possèdera une méthode crie() - Un Oiseau sera une Class qui étendera de Animal, avec une propriété couleur et possèdera une méthode pousser() qui héritera et appelera la méthode crie() de la Class Animal - ainsi nous pouvons construire un Oiseau, blanc qui lorsqu'on appelera la méthode pousser() fera un crie()


    // Définition de la class parente (ou superclasse)
    class Animal {
        protected $espece;

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

        public function getEspece() {
            return $this->espece;
        }

        public function parler() {
            echo "Je suis le " . $this->espece . ", ";
        }
    }

    // Définition de la class enfant (ou sous-classe) qui étend la class Animal
    class Oiseau extends Animal {
        private $cri;

        public function __construct($espece, $cri) {
            parent::__construct($espece); // Appel du constructeur de la class parente
            $this->cri = $cri;
        }

        public function pousser() {
            parent::cri(); 
            echo "mon crie est le " . $this->cri . ".";
    }

    // Création d'un objet de la classe enfant
    $canard = new Oiseau("Canard", "cancane");
    $canard->pousser(); 

    << produira la sortie suivant: Je suis le Canard, mon cri est le cancane >>

    

Définir l’opérateur de résolution de portée

L'opérateur de résolution de portée :: est utilisé pour accéder aux membres d'une classe et appeler les méthodes, les propriétés statiques et les constantes de Classe dans un contexte de la programmation orientée objet.

Définir une méthode / propriété statique

Une méthode ou une propriété statique dans un langage de programmation orienté objet est une méthode ou une propriété qui appartient à la classe elle-même plutôt qu'à une instance spécifique de cette classe. Cela signifie qu'ils peuvent être appelés ou accédés directement à partir de la classe elle-même, sans avoir besoin de créer une instance de la classe.

Définir le polymorphisme en POO

Le polymorphisme en programmation orientée objet (POO) est un concept qui permet à des objets de différentes classes d'être traités de manière uniforme s'ils possèdent une interface commune.

Définir une méthode / classe abstraite ?

Une méthode abstraite est une méthode déclarée dans une classe mais qui n'a pas d'implémentation concrète. Elle fournit une interface ou un contrat que les classes dérivées doivent implémenter. Une classe abstraite est une classe qui peut contenir des méthodes abstraites ainsi que des méthodes concrètes, mais elle ne peut pas être instanciée elle-même ; elle sert de modèle pour d'autres classes qui étendent cette classe abstraite.

Définir le chaînage de méthodes

Le chainage de méthodes est un concept de programmation qui permet d'appeler plusieurs méthodes sur un même objet.Pour permettre le chaînage de méthodes, les méthodes doivent retourner l'objet sur lequel elles ont été appelées. Cela permet à l'appelant de continuer à appeler des méthodes sur cet objet

Qu’est-ce que la méthode __toString() ? Existe-t-il d’autres méthodes «magiques »

Qu’est-ce qu’un « autoload » ?

Comment appelle-t-on en français les « getters » et les « setters » ?

Qu’est-ce que la sérialisation en PHP ?