Definition

Programmation orientée objet

Cette définition fait partie de notre Guide Essentiel : La modernisation de Java : un écosystème à la manœuvre

La programmation orientée objet est un modèle de langage de programmation qui s'articule autour d'objets et de données, plutôt que d'actions et de logique. Par le passé, un programme était une procédure logique qui récupérait des données en entrée, les traitait puis produisait des données en sortie.

L'enjeu de la programmation était d'écrire la logique, pas de définir les données. La programmation orientée objet a changé la perspective : l'important, ce sont les objets à manipuler plutôt que la logique nécessaire à cette manipulation.

Les objets sont très divers : des personnes (définies par leurs nom, adresse, etc.) aux bâtiments et aux étages (aux propriétés descriptibles et gérables) jusqu'aux petits widgets placés sur le bureau de votre ordinateur (comme les boutons et les barres de défilement).

La première étape consiste à identifier tous les objets que le programmeur veut manipuler et leurs interactions ; exercice qualifié de modélisation des données.

Une fois l'objet identifié, il est conceptualisé en une classe d'objets (pensez à Platon et à l'idée de chaise qui représente toutes les chaises). Cette classe définit le type de données qu'elle contient et toute séquence logique susceptible de la manipuler. Chaque séquence logique distincte est une méthode. Les objets communiquent avec des interfaces bien définies nommées messages.

Les concepts et les règles utilisés en programmation orientée objet procurent les bénéfices non négligeables :

  • Le concept de classe de données permet de définir des sous-classes d'objets de données qui partagent certaines voire toutes les caractéristiques de la classe principale. Cette propriété dite « d'héritage » contraint à une analyse poussée des données, accélère le développement et produit un code plus précis.
  • Comme une classe définit uniquement les données dont elle doit s'occuper, quand une instance de cette classe (un objet) s'exécute, le code ne peut pas accéder par erreur à d'autres données du programme. Masquer les données est une spécificité qui renforce la sécurité du système et évite de corrompre les données par accident.
  • La définition d'une classe est réutilisable par le programme pour lequel on l'a initialement créée, mais aussi par d'autres programmes orientés objet. Elle est donc plus facile à distribuer pour une utilisation en réseau.
  • Le concept de classes de données permet à un programme de créer n'importe quel type de données encore indéfini dans le langage lui-même.

Simula a été le premier langage de programmation orientée objet. Java, Python, C++, Visual Basic .NET et Ruby sont aujourd'hui les langages les plus courants.

Cette définition a été mise à jour en juin 2016

Pour approfondir sur Outils de développement