Objet (informatique)

Pour les articles homonymes, voir Objet.

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.

## Histoire

[modifier | modifier le code]

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.

## Terminologie

[modifier | modifier le code]

* Une classe est une description des caractéristiques d'un ou de plusieurs objets. Chaque objet créé à partir de cette classe est une instance de la classe en question.
* Un prototype est une description d'un objet, qui sera utilisé pour créer d'autres objets par clonage. voir programmation orientée prototype.
* Une méthode est une suite d'instructions qui manipule les caractéristiques et l'état d'un objet.
* Une propriété, aussi nommée champ (field) ou attribut, est une caractéristique propre à un objet donné.
* L’état d'un objet est sa forme à un instant donné, telle que décrite par les valeurs de l'ensemble de ses propriétés.
* Une classe hérite les caractéristiques d'une autre si sa définition est fondée sur celle-ci, auquel cas ses instances partagent les traits des 2 classes. On parle alors de sous-classe et super-classe.
* Il y a polymorphisme (par sous-typage) lorsqu'il existe plusieurs sous-classes d'une même super-classe, qui possèdent chacune leur propre variante d'une même méthode.

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.

## Utilisation

[modifier | modifier le code]

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

[modifier | modifier le code]

Article détaillé : programmation orientée objet.

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.

## Voir aussi

[modifier | modifier le code]

* Programmation orientée objet

## Notes et références

[modifier | modifier le code]

1. ↑ Bhuvan Unhelkar, Practical Object Oriented Analysis, Thomson Learning Nelson - 2005, (ISBN 9780170122986).
2. ↑ David Parsons, Object Oriented Programming with C++, Cengage Learning EMEA - 2002 (ISBN 9780826454287).
3. ↑ Saba Zamir, Handbook of Object Technology, CRC Press - 1999 (ISBN 9780849331350).
4. ↑ Stanley Benjamin Zdonik et David Maier, Readings in Object-Oriented Database Systems, Morgan Kaufmann - 1990 (ISBN 9781558600003).

v · m

Types de données

Non interprétée |

* Bit
* Byte
* Trit
* Tryte
* Mot

Numérique |

* Bignum
* Complexe (en)
* Décimal (en)
* Virgule fixe
* Virgule flottante
* Entier
* Non signé (en)
* Intervalle
* Rationnel (en)

Texte brut |

* Caractère
* Chaîne de caractères

Pointeur |

* Adressage mémoire
* Physique
* Virtuelle
* Référence

Composite (en) |

* Type algébrique de données
* Généralisé
* Tableau
* Tableau associatif
* Classe
* Dépendant
* Égalité (en)
* Inductive (en)
* Liste
* Objet
* Métaobjet
* Option (en)
* Produit
* Enregistrement
* Ensemble (set)
* Vecteur
* Union (en)
* Disjointe

Autres |

* Booléen
* Type vide
* Collection
* Conteneur
* Type énuméré
* Exception
* Fonction
* Opaque (en)
* Type récursif
* Sémaphore
* Flux
* Top (en)
* Type class (en)
* Type unité
* Void

Articles liés |

* Type abstrait
* Structure de données
* Généricité
* Kind (en)
* Métaclasse
* Parametric polymorphism (en)
* Primitive data type (en)
* Interface
* Subtyping (en)
* Type constructor (en)
* Conversion de type
* Type system (en)

v · m

Unified Modeling Language

Organismes |

* ISO
* Object Management Group
* Partenaires UML

Personnalités |

* Grady Booch
* Ivar Jacobson
* James Rumbaugh

Concepts |  | Orientation objet |

* POO
* Méthode d'analyse et de conception d'applications orientées objet
* Encapsulation
* Héritage
* Polymorphisme

|

Structure |

* Acteur
* Artéfact
* Attribut
* Classe
* Composant
* Interface
* Objet
* Package
* Propriété

Comportement |

* Activité
* Événement
* Message
* Méthode
* État
* Cas d'utilisation

Relation |

* Agrégation
* Association
* Composition
* Dépendance
* Généralisation
* Héritage

Autres |

* Cardinalité
* Profil
* Stéréotype

Diagrammes |  | Structure |

* Classes
* Composants
* Structure composite
* Déploiement
* Objets
* Paquetages
* Profils

|

Comportement |

* Activité
* État
* Cas d'utilisation

Interaction |

* Communication
* Séquence
* Global d'interaction
* Temps

Articles liés |

* Unified Process
* Systems Modeling Language
* Colorisation d'UML
* XMI

* Portail de l’informatique
* Portail de la programmation informatique

*[XXe]: 20ᵉ siècle
*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.