L'association d'élément détenue représente des classes qui sont détenues par un package. Cette relation est utilisée pour représenter des classes imbriquées dans un diagramme de classes UML où une classe est déclarée dans la portée d'une autre classe (externe). Une classe imbriquée appartient à l'espace de nom de la classe externe et peut uniquement être utilisée dans la classe externe. En effet, la classe parent déclare la classe interne (ou imbriquée). Cette construction est essentiellement utilisée pour des raisons d'implémentation et pour masquer des informations.
Une classe déclarante et une classe dans son espace de nom sont reliées par une ligne d'ancrage (appelée "association détenue" dans UML) avec une icône d'ancrage sur l'extrémité reliée à une classe déclarante. Une icône d'ancrage apparaît comme un signe plus à l'intérieur d'un cercle. Le contenu du package est déclaré dans la classe et appartient à son espace de nom.
Par exemple, si la classe B est rattachée à la classe A par une ligne d'ancrage avec le symbole de l'ancre sur la classe A, alors la classe B est déclarée dans l'espace de nom de la classe A. La relation entre la classe A et la classe B est donc l'association d'élément détenue par l'espace de nom.
La figure suivante montre comment les associations d'éléments détenues sont représentées dans les diagrammes de classes UML.
| Code source Java™ | Représentation visuelle UML |
![]() |
![]() |