Programmation orientée objet
La programmation orientée objet (OOP) est une façon d'écrire des programmes informatiques qui utilise l'idée d'"objets" pour représenter des données et des méthodes. Habituellement, les programmes informatiques ne sont qu'une liste d'instructions à l'ordinateur, lui disant de faire certaines choses d'une certaine manière, ce qu'on appelle la programmation procédurale. Cependant, dans la programmation orientée objet, les programmes informatiques utilisent des objets qui se parlent et modifient les données de ces objets, pour fonctionner de la manière souhaitée par l'utilisateur. De plus, en raison de la façon dont la programmation orientée objet est conçue, elle aide le développeur en permettant au code d'être facilement réutilisé par d'autres parties du programme ou même par d'autres personnes.
La plupart des langages de programmation sont un mélange de différents types de façons d'écrire des programmes informatiques. Par exemple, Python permet d'écrire des programmes informatiques à la fois en programmation orientée objet et en programmation procédurale. Il existe de nombreux langages de programmation qui permettent d'écrire des programmes informatiques en POO, Certains de ces langages de programmation sont, par exemple : C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, etc.
Caractéristiques
L'idée principale de la programmation orientée objet est que tout est un objet. Cependant, l'objet peut être de différents types :
- Les variables peuvent contenir des informations (ou des données) de différents types qui sont prises en charge par le langage de programmation. Les exemples sont le type de données entières et la structure des données de listes. Variables est une idée qui est déjà disponible dans les langages de programmation procéduraux. Dans la programmation orientée objet, les variables sont principalement connues sous le nom d'attributs.
- Les procédures (également appelées fonctions, méthodes ou routines) sont une liste d'instructions indiquant à l'ordinateur de prendre des données en entrée, d'effectuer certains calculs ou de modifier des données, et de renvoyer les résultats à l'utilisateur. Les procédures sont également une idée qui est déjà disponible dans les langages de programmation procéduraux. Dans la programmation orientée objet, les procédures sont principalement connues sous le nom de méthodes.
- Les classes sont un ensemble de variables et de procédures différentes. Les classes se parlent généralement entre elles pour apporter des modifications aux données afin de fonctionner de la manière souhaitée par l'utilisateur.
Objets est un terme utilisé pour désigner des instances de classes.
Exemples
Dans les exemples ci-dessous, nous créons une classe appelée Humain
. Cette classe contient les attributs nom
(pour le nom de la personne) et ami
(pour le nom de l'ami). Chacune des méthodes de la classe Human contient une liste d'instructions qui utilisent à la fois les attributs nom
et ami.
Python
Ce code est en Python.
Java
Ce code est en Java.
La classe humaine
Une méthode pour parler à la classe humaine ci-dessus
Critique
Même si la programmation orientée objet est populaire, il y a beaucoup de gens qui pensent qu'elle est mauvaise et la critiquent.
- Luca Cardelli a écrit un article intitulé "Bad Engineering Properties of Object-Oriented Languages".
- Richard Stallman a écrit en 1995 : "Ajouter la POO à Emacs n'est pas clairement une amélioration ; j'ai utilisé la POO lorsque je travaillais sur les systèmes de fenêtres Lisp Machine, et je ne suis pas d'accord avec l'opinion habituelle selon laquelle c'est une façon supérieure de programmer".
- Une étude de Potok et al. nous dit qu'il y a très peu de différence de productivité entre la PCO et les approches procédurales.
- Christopher J. Date a déclaré qu'il est difficile de comparer la PO à d'autres choses, en particulier la façon dont la PO et l'autre chose sont liées, parce que les gens ne sont pas d'accord sur la signification de la PO.
- Alexander Stepanov a suggéré que l'OOP donne un point de vue qui est limité en ce qui concerne les mathématiques, et l'a qualifié de "canular presque autant que l'intelligence artificielle".
- Paul Graham, un vendeur et programmeur Internet à succès, a suggéré que l'objectif de la POO est d'agir comme un mécanisme de régulation qui empêche les programmeurs moyens dans les organisations moyennes de "faire trop de dégâts". Cela permet également de ralentir les programmeurs plus rapides et meilleurs qui savent comment faire les choses de manière plus puissante et plus compacte... [1]
Questions et réponses
Q : Qu'est-ce que la programmation orientée objet ?
R : La programmation orientée objet est une façon d'écrire des programmes informatiques en utilisant des "objets" pour représenter les données et les méthodes.
Q : En quoi la programmation orientée objet diffère-t-elle de la programmation procédurale ?
R : Dans la programmation procédurale, les programmes informatiques sont une liste d'instructions destinées à l'ordinateur, lui indiquant de faire certaines choses d'une certaine manière. Dans la programmation orientée objet, les programmes informatiques utilisent des objets qui communiquent entre eux afin de modifier les données contenues dans ces objets et de fonctionner de la manière souhaitée par l'utilisateur.
Q : Quels sont les avantages de la programmation orientée objet pour les développeurs ?
R : La programmation orientée objet permet de réutiliser facilement le code dans d'autres parties du programme ou même par d'autres personnes.
Q : Pourquoi le langage de programmation Python est-il connu ?
R : Python permet d'écrire des programmes informatiques à la fois en programmation orientée objet et en programmation procédurale.
Q : Pouvez-vous donner des exemples de langages de programmation qui permettent d'écrire des programmes informatiques en programmation orientée objet ?
R : Les langages de programmation qui vous permettent d'écrire des programmes informatiques en programmation orientée objet comprennent C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C#, etc.
Q : Que sont les objets dans la programmation orientée objet ?
R : Les objets sont des entités de la programmation orientée objet qui contiennent des données et des méthodes.
Q : Comment les objets fonctionnent-ils dans la programmation orientée objet ?
R : Les objets interagissent les uns avec les autres pour modifier les données qu'ils contiennent et pour fonctionner de la manière souhaitée par l'utilisateur.