CORRIGÉ DES EXERCICES DE L'OUVRAGE La programmation orientée objet

CORRIGÉ DES EXERCICES DE L'OUVRAGE ... Dans le code C#, et au contraire de Java, une méthode statique ne peut être appelée sur autre chose que la.

Part of the document


Un référent ne peut désigner qu'un seul objet puisqu'il s'agit en effet de l'adresse de l'objet et qu'un objet ne
peut être placé que dans une adresse unique.
Plusieurs référents peuvent ceci dit partager cette adresse et ainsi pointer vers le même objet. Il s'agit d'un
système d'adressage indirect. Cette multiplication des référents est un aspect fondamental de la gestion
mémoire par le " ramasse-miettes » dans les langages de programmation qui le permettent.
Un objet peut en référer un autre en, par exemple, pour une association forte entre deux objets, possédant
parmi ses attributs l'adresse d'un autre objet.
En programmation orientée objet, tout ce que fait un objet est spécifié par sa classe. Cela permet notamment
au compilateur de vérifier que le code est correctement écrit. C'est la classe qui définit également les parties
communes à tous les objets : types d'attribut et méthodes.
Tout dépend de ce l'on appelle l'état d'un objet mais, en substance, toute modification des attributs d'un
objet ne peut se faire que par l'exécution de méthodes qui sont prévues dans la définition de la classe de
l'objet.
Cela signifie que la méthode " f(x) » s'exécute sur l'objet désigné par " a ». La classe de l'objet " a »
contiendra en son sein la méthode " f(x) ».
La méthode " f(x) » soit être déclarée dans une des classes qui définit l'objet " a ». Il faut connaître le
mécanisme d'héritage pour savoir que plus d'une classe peut être concernée, et que cette méthode doit se
trouver dans une des classes ou superclasses qui décrit l'objet " a ».
On appelle " envoi de message » la présence dans le code d'une classe d'un appel de méthode s'exécutant
sur un autre objet. Lors de l'exécution du code, un premier objet passera le relais à un deuxième pour
l'exécution de cette méthode le concernant.
Il suffit que le message qui provoque l'exécution de la méthode sur le deuxième ait spécifiquement dans ses
attributions la modification des attributs de ce deuxième. Rappelons-nous que le respect de l'encapsulation
rend cette modification directe impossible pour le premier objet qui ne peut avoir un accès direct aux
attributs du deuxième.

Exercice 2.2
public void test() _ admis
public void test(double a) _ admis
public void test(int a, int b) _ admis
Exercice 2.3
Le code Java ne compilera pas à cause simplement de la présence du void qui fait de cette méthode une autre
méthode que le constructeur. Le compilateur ne trouve donc pas le constructeur lors de l'instruction
A unA =
new A(5) ;
Le code C# ne compilera pas car il refusera que vous puissiez créer une méthode autre que le constructeur
avec le même nom que la classe. En fait, il évite le genre d'erreur plus difficile à déceler dont le code Java
pourrait être responsable. Seul le constructeur peut porter le nom de la classe.
Le code affichera infiniment les deux chiffres 1,2.