Il s'agit de la premiêre manière de réutiliser du code existant.
L'idée en est simple : il s'agit d'utiliser comme variables membres
d'une nouvelle classe des variables référançant une classe définie
par ailleurs.
Un objet de la nouvelle classe pourra ainsi être composé d'objets de
diffférentes autres classes.
Nous verrons un peu plus loin une seconde approche permettant de réutiliser du code existant avec le mécanisme d'héritage qui permet de définir de nouvelles classes par spécialisation de classes existantes.
À ce point disons que l'utilisation de la composition vise à faciliter l'implantation d'une nouvelle classe CC en y utilisant des variables d'instance dans des classes Ci définies par ailleurs.
Généralement cette encapsulation sera transparente aux utilisateurs de la
nouvelle classe : le fait que la nouvelle classe utilise les services
d'une classe A plutôt que ceux
d'une classe B ne concerne pas
les utilisateurs de cette nouvelle classe.
Un utilisateur de CC utilisera
l'interface de CC et pas celle des
classes Ci
de ses variables d'instance de CC
(à moins qu'il en ait lui-même besoin indépendamment de
l'utilisation de la nouvelle classe et que cela lui soit autorisé).
Du point de vue Java, cela correspondra à rendre privées ou non
(private) les variables d'instance de la nouvelle classe.