En informatique, un objet est un conteneur symbolique et autonome qui contient des informations et des mécanismes[1] concernant un sujet, manipulés dans un programme. Le sujet est souvent quelque chose de tangible appartenant au monde réel[2],[3]. C'est le concept central de la programmation orientée objet (POO).
En programmation orientée objet, un objet est créé à partir d'un modèle appelé classe ou prototype, dont il hérite les comportements et les caractéristiques. Les comportements et les caractéristiques sont typiquement basés sur celles propres aux choses qui ont inspiré l'objet : une personne (avec son état civil), un dossier, un produit.
La notion d'objet a été introduite avec le langage de programmation Simula, créé à Oslo entre 1962 et 1967 dans le but de faciliter la programmation de logiciels de simulation. Avec ce langage de programmation, les caractéristiques et les comportements des objets à simuler sont décrits dans le code source.
Le langage de programmation orienté objet Smalltalk a été créé par le centre de recherche Xerox en 1972.
La programmation orientée objet est devenue populaire en 1983 avec la sortie du langage de programmation C++, un langage orienté objet, dont l'utilisation ressemble volontairement au populaire langage C.
Les premières bases de données orientées objet ont été commercialisées en 1993, et leur technologie n'est pas arrivée à maturité avant la fin du XXe siècle[4].
Le langage de programmation orienté objet Java a été créé par Sun Microsystems en 1995, et était avant tout destiné à la programmation des applications web, dont la technologie était en pleine évolution durant les années 1990.
Dans certains langages Orientés Objets (OO), les méthodes, les propriétés et l'état d'un objet sont manipulables à partir d'autres objets uniquement si ceux-ci sont explicitement déclarés comme publics. C'est le mécanisme d´encapsulation.
Parmi les diverses technologies qui gravitent autour des objets, il y a les langages de programmation orientés objet et les bases de données orientées objet. La notion d'objet est également utilisée dans la programmation de composants logiciels ainsi que la conception de logiciel.
Une base de données orientée objet permet le stockage permanent d'objets, à l'aide d'un système de gestion de base de données et un langage de programmation adaptés.
Le Object Management Group est un consortium international de normalisation et de soutien des technologies basées sur les objets.
Créée par le Object Management Group, CORBA est une norme relative à l'architecture de logiciels qui s'échangent des objets.
Créée par le consortium W3C, le Document Object Model est une norme relative à la manipulation des éléments d'une page web par un langage de programmation orienté objet comme JavaScript.
La programmation orientée objet est un style d'écriture du code source, propre à certains langages de programmation. Dans ce style, le code source est une suite de descriptions de classes ou de prototypes, avec la description de leurs caractéristiques (propriétés) et de leurs comportements (méthodes). Smalltalk, Python, Ruby, C#, Java et C++ sont des langages de programmation orientés objet.