Abstraction des données
L’abstraction des données est un élément essentiel de la programmation orientée objet. Elle ne fournit que les informations essentielles au monde extérieur tout en masquant les détails de fond ou la mise en œuvre. Cela permet de simplifier l’objet et sa tâche.
Exemple : un conducteur sait qu’appuyer sur l’accélérateur augmente la vitesse, mais n’a pas besoin de connaître les mécanismes internes du moteur de la voiture. Le fait d’inclure uniquement les données critiques nécessaires à l’exécution d’une tâche par l’objet facilitera les modifications et ajouts futurs.
Encapsulation
L’encapsulation explique le regroupement des données dans une seule unité. C’est le mécanisme qui lie le code et les données qu’il manipule.
Les variables ou les données d’une classe sont cachées aux autres classes et ne sont accessibles qu’à travers les fonctions membres de leur propre classe. C’est ce qu’on appelle le masquage de données.
Il offre une sécurité accrue et permet d’éviter la corruption involontaire des données.
Exemple : un responsable financier a besoin de données relatives aux ventes pour rédiger un rapport. Il doit contacter un membre de l’organisation commerciale pour accéder à ces informations depuis le système de gestion de la relation client plutôt que d’y accéder directement lui-même.
Héritage
Ce pilier fait référence à la capacité d’une classe à dériver des propriétés et des caractéristiques d’une autre classe. L’héritage permet la réutilisation du code, car les propriétés et les fonctions peuvent être héritées plutôt qu’écrites à plusieurs reprises, ce qui réduit la redondance et fait gagner du temps.
Exemple : un employé peut hériter de variables et de caractéristiques d’une personne ordinaire.
Polymorphisme
Le polymorphisme signifie « avoir plusieurs formes ». Il explique qu’un même objet puisse avoir plusieurs fonctions selon le contexte.
Le polymorphisme permet à un appel de méthode unique de produire un résultat différent en fonction de l’objet sur lequel il agit. Il permet à une fonction de travailler avec une interface spécifique, manipulant uniformément des entités de différentes classes.
Exemple : une même personne peut être à la fois père, mari et employé, et présenter des comportements différents dans des contextes différents. Si vous avez des objets cercle et carré, ils pourraient appartenir à une classe forme, avec une méthode dessiner qui peut être appelée pour les deux.
Les autres principes clés de la POO sont : classe, objet, liaison dynamique et passage de messages.
Objet
Un objet est l’unité de base de la programmation orientée objet. Il représente des entités réelles ou abstraites et constitue une instance d’une classe. La mémoire ne peut être allouée que lorsqu’un objet est créé.
Les objets interagissent en envoyant et en recevant des messages, ne devant connaître que le type de message accepté et la réponse renvoyée, et non les détails internes de chacun.
Exemple : un chien est un objet de la vie réelle avec des caractéristiques telles que la couleur et la race, et des comportements comme aboyer, dormir et manger.
Classe
Comme pour l’héritage, les objets sont organisés en catégories appelées classes. Une classe sert de modèle aux objets individuels, en définissant un ensemble de propriétés ou de méthodes communes à tous les objets de ce type. Elle se compose de membres de données (variables et attributs) et de fonctions membres (méthodes).
Exemple : une classe voiture peut définir des propriétés telles que quatre roues, vitesse maximale et autonomie.
Liaison dynamique
La liaison dynamique est le mécanisme par lequel le code à exécuter pour un appel de fonction est déterminé au moment de l’exécution. Cela signifie que le code exact associé à un appel de procédure n’est connu qu’au moment de l’appel.
La liaison dynamique fonctionne souvent avec l’héritage et le polymorphisme, ce qui permet à un objet de rechercher dans la hiérarchie de sa classe parente la version correcte de cette méthode et de l’exécuter. Cette flexibilité permet à un objet d’adopter différents comportements au moment de l’exécution.
Exemple : le véhicule est votre classe de base, et à partir de là, vous avez deux classes dérivées, voiture et moto. Les deux ont des caractéristiques communes, comme le démarrage d’un moteur pour fonctionner, mais la manière dont elles effectuent cette action est unique.
Passage de messages
Le passage de messages est utilisé en POO, où les objets interagissent en s’envoyant et en recevant des informations les uns aux autres. Il implique de spécifier le nom de l’objet, le nom de la fonction et les informations à envoyer.
Exemple : un conducteur est un objet qui interagit avec un autre objet, un véhicule.
Avantages de la POO