Des objets qui communiquent

Cet exercice permet d'apercevoir comment on peut faire communiquer des objets. Tout l'exercice est facile, pourtant l'expérience montre que faire communiquer les objets est une difficulté pour les débutants avec un langage objet.

Partage d'un même objet

Il s'agit de faire en sorte que deux classes partagent un même objet ; ce genre de situation se produit tout le temps lorsqu'on travaille avec un langage objet.
On définit ici quatre classes très simples.
On précise qu'un attribut privé (ce qui est indiqué avec le mot private précédant sa déclaration) ne peut être accédé directement que du code de sa propre classe. Si on veut qu'un attribut privé soit accessible d'une autre classe, il faut définir une méthode qui retourne la valeur de cet attribut ; si on veut qu'un attribut privé puisse être modifié à partir d'une autre classe, il faut prévoir une méthode qui effectue cette modification ; de telles méthodes s'appellent des accesseurs. Dans une application plus complète, on définirait sans doute des accesseurs supplémentaires pour gérer les attributs privés des classes Gadget, A et B. Les classes A et B partagent un même objet de type Gadget ; deux objets peuvent de même partager un même tableau : il est possible de partager un objet ou un tableau car ils sont man,ipulés par référence, mais il n'est pas possible de partager un attribut de type primitif.

Un exemple d'exécution
Pour la commande java EssaiAB, on obtient :

Instance de A,  entier = 0, valeur du gadget = 0
Instance de B,  entier = 0, valeur du gadget = 0
Après incrémentation : 
Instance de A,  entier = 0, valeur du gadget = 10
Instance de B,  entier = 5, valeur du gadget = 10

Corrigé qui contient les quatre classes.

Un objet qui construit un objet qui le connaît

Cet exercice est encore assez formel, et ne sert qu'à s'entraîner à faire communiquer des objets.
On définit trois classes très simples.

Corrigé qui contient les trois classes.

Deux instances qui se connaissent

On définit ici deux classes.

Un exemple d'exécution
Pour la commande java EssaiAmis Marie Olivier Antoine, on obtient par exemple :

Marie n'a pas d'ami
Olivier a pour ami Antoine
Antoine a pour ami Olivier

Corrigé qui contient les deux classes.


© Irène Charon, Télécom ParisTech - Paris 2011