Site des Oraux |
Programmation Orientée Objet 2006 (2) ::
post Années :: 2004 :: 2005 :: 2007 :: 2008 :: 2009 :: Toutes |
Post nº2 (id2453) envoyé par Titi le 31 Aug 2006, 20:34 hello, alors g eut: on a 3 classes:A,B,C et une interface IA la classe C a un lien de composition vers la classe A.La classe B hérite de A et implémente l'interface IA. Ds l'interface IA il y a une méthode faire A. Pour cki est du diag de séquence on a un envoi de message de C sur un objet c vers B sur un objet b. coder ça en java et faire un envoi de message ss voir B(doffice si ya une interface c pas fait pour les chiens:))... en gros faut créer une méthode faire C ds C ou a lintérieur ya faire A et lappeler du main et introduire le lien de composition avec la classe A mais ça c texto ds le bookin,on crée un objet ds le constructeur grâce au new en tenant compte du principe de substitution(superclasse peut tout faire donc le typage statik de lobjet B peut être du type superclasse)... voila je crois kya pas grd chose dautre a expliker,la dessus vous pouvez lui faire un joli 'ti baratin concernant lintérêt des interfaces et sur le principe de substitution comme ça vous lui montrer ke vous avez lu son passionnant boukin avec son humour bien lourdeau..enfin soit:p |
Post nº1 (id2451) envoyé par anonyme le 30 Aug 2006, 22:44 Salut j'ai passé l'exam ce matin et voici la question qui m'a été posée: Bersini m'a donné un diagramme de classe et un diagramme de séquence et il voulait que je lui explique ce à quoi ça correspondait en lignes de code... Diagramme de classe : --> un classe A ayant un lien de composition avec une classe abstraite B --> 3 classe C, D et E qui héritent de B --> la classe D contient une methode faireD() --> Cas évident de POLYMORPHISME Diagramme de séquence A:a | | ---------> D:d | | | | | faireD() | |------------>| | | Le diagramme de séquence est un peu bizarre ( flèche du haut ) mais ça correspond juste au fait que la classe A possède une méthode qui crée un objet de la classe D La flèche du bas représente, comme dans le cours, à un envoi de message Commençons par le plus simple public class C extends B { public C() {} } idem pour la classe E public class D extends B { public D() {} public void faireD() {} } public abstract class B() { public B() {} } Pour la création de l'objet de la classe D, j'avais choisi de le faire dans le constructeur de la classe A ... public class A() { private B unB; public A() { unB=new D(); } public void envoiMessage() { (D)unB.faireD(); //je suis pas sûr de cette ligne.... } } ATTENTION !!!! Je ne suis pas sûr que la méthode envoiMessage() est correcte.... En effet je suis parvenu à tout lui expliquer correctement jusqu'à la ligne unB=newD() sur laquelle j'ai coincé... Je suis parti en vrille avec le casting ou je ne sais plus quoi car la classe B est abstraite et qu'elle ne peut donc pas créer d'objet et donc il fallait créer directement un objet de la classe D mais je voyais plus très bien comment il fallait écrire ça correctement ....--> après cinq grosses minutes de réflexion infructueuses, Bersini a interrompu l'exam ( je crois que les 20-25 minutes d'exam étaient passées ).Il m'a dit qu'il me mettait 11, m'a donné la bonne ligne de code et m'a annoncé que j'avais rien compris au polymorphisme!!!!!!!!!!!!!!!!!!....... Voila... j'étais le premier à passer... le deuxième a eu la même question que moi et je crois que la troisième personne a reçu un bout de code à corriger et à compléter.... J'espère que j'ai été clair dans mes explications.... et bon courage à ceux qui doivent encore passer cet exam.... |
oraux.pnzone.net - infos - 4ms |