Programmation orientée objet : Définition, concept et qu’est-ce que c’est ?

Qu’est ce que / Programmation orientée objet : Définition, concept et qu’est-ce que c’est ?

Outre les langages de programmation, il existe diverses manières ou philosophies d’aborder la conception d’un logiciel, manières qui s’incarnent dans différents langages, qui les embrassent pour satisfaire les exigences d’un type particulier de tâche ou d’un collectif de programmeurs. L’une de ces philosophies est l’orientation objet.

La programmation orientée objet consiste à considérer comme ‘objets’ les sujets d’intérêt du programme, chaque type d’élément étant défini avec ses données et ses méthodes de traitement.

Cela permet, en gros, de traiter ces objets comme un autre type de données, sur lesquelles on peut appliquer des méthodes et créer des constructions qui effectueront des calculs et des manipulations. Ces nouveaux types de données sont construits à partir des types de base inclus dans le langage de programmation, et les opérations sont déclarées comme des procédures ou des fonctions.

Une caractéristique notable qui permet ce modèle de développement est ce qu’on appelle ‘l’héritage’, qui consiste à créer de nouveaux objets à partir d’objets précédents, en modifiant ou en étendant à la fois leurs attributs et les méthodes à exercer sur eux.

Bien que la programmation orientée objet gagne en popularité dans le monde de la programmation depuis la fin des années 1980 et le début des années 1990, la vérité est que sa création remonte à bien plus loin, à la fin des années 1960.
L’élément déclencheur du succès de la programmation orientée objet a été, dans une large mesure, la popularisation des environnements graphiques tels que Windows, car ce paradigme facilite grandement la création de ressources graphiques, leur dérivation en d’autres ressources similaires (par le biais de l’héritage susmentionné) et le travail avec des méthodes qui répondent aux actions de l’utilisateur sur les éléments.
À partir de ce moment, il est devenu le paradigme dominant, étant celui utilisé par le plus grand nombre de langages et ayant le plus de succès auprès des programmeurs, une situation qui a perduré jusqu’à aujourd’hui.

Les différents types d’objets doivent être déclarés en tant que classe à un stade précoce du programme avant que les objets appartenant à cette classe puissent être instanciés.

Cela permet de structurer le programme de manière à ce qu’il soit compréhensible pour une personne extérieure, en suivant une séquence logique.
Pour rendre ces concepts compréhensibles, prenons un exemple : un programme d’administration du personnel dans une entreprise.
Une classe peut être un travailleur, avec des attributs tels que le nom, le prénom, le numéro de sécurité sociale, l’intitulé du poste, le salaire, etc. Chaque objet instancié serait un travailleur différent. Par exemple, nous pourrions créer une liste pour chaque département, ou une liste globale de travailleurs, selon la manière de gérer et de penser le programme.
Les méthodes à appliquer sur cette classe pourraient être plusieurs, comme ‘l’augmentation de salaire’, qui multiplierait le salaire par un certain pourcentage, ou l’attribution de jours de vacances, qui insérerait des marques de vacances dans le calendrier de chaque travailleur, qui seraient différentes entre les travailleurs afin de pouvoir profiter des quarts de travail.
Cette classe pourrait donner naissance, par héritage, à une nouvelle classe appelée ‘stagiaires’, qui n’aurait pas d’attribut tel que le salaire, mais aurait un ou plusieurs attributs faisant référence à la formation, puisque le statut juridique des stagiaires pourrait obliger l’entreprise à les former.
Au fil des ans, de nombreux langages de programmation ont vu le jour, qui adoptent ouvertement le paradigme orienté objet comme méthode de travail.

Le langage le plus connu est peut-être le C++, qui donne au C traditionnel une patine orientée objet.

Cependant, il existe d’autres langages, également bien connus, qui suivent le même paradigme orienté objet, comme Java, Visual Basic.NET (développé par Microsoft), Objective-C (principalement utilisé dans les systèmes Apple), et des langages largement utilisés dans les applications Internet comme Ruby, Python, Perl ou PHP.