La classe fournit un mécanisme d'instanciation (l'opération new), un objet est ainsi une instance d'une classe.
Les attributs d'une classe sont aussi appelés les variables d'instances.
Différents niveaux de visibilité pour les opérations : public et privé.
L'interface de la classe est constitué des opérations publiques. C'est le principe de l'encapsulation des attributs.
Remarque : les langages objets diffèrent quelque peu sur cet aspect.
La spécification d'une opération est sa signature : type des arguments d'entrée, type de l'objet receveur et type de l'argument de sortie.
Les objets sont accédés soit par un appel de procédure (langage compilé), soit par envoi de messages (langage interprété).
Employé
et Site
de l'exercice précédent.
La relation de généralisation qui traduit la relation naturelle est-un est à la base de la hiérarchie des classes et de la relation d'héritage.
La fonction inverse est appelée fonction de spécialisation.
Une des limites de la distinction entre objet et classe est l'impossibilité de créer des classes pendant l'exécution d'un programme.
Remarque : la métaclasse est sa propre instance, et la classe object est la racine de la hiérarchie
metaclasse
et object
L'association est un concept issu du modèle entité-association, défini par Chen en 76 pour la modélisation sémantique des données.
Une caractéristique importante d'une association est sa cardinalité : 1-1, 1-N ou N-M.
Parmi les associations, deux types particulier :
Remarque : L'agrégation est transitive
Employé, Site
et quatre nouvelles classes Batiment, Bureau, SalleRéunion
et Parking
.
Lorsqu'un attribut est multivalué, sa valeur est une collection. Le langage peut fournir un constructeur de type pour les collections (une liste), mais il est préférable de fournir une classe.
Collection, Ensemble, Tableau
, et Liste
.