Site des Oraux

Programmation Orientée Objet 2005 (7) :: post
Années :: 2004 :: 2006 :: 2007 :: 2008 :: 2009 :: Toutes

Post nº7 (id1558) envoyé par none  le 05 Sep 2005, 19:33
La question commence par un diagramme UML avec une class B qui hérite d'une class A et qui a un lien de composition avec une classe C. Il demande le squelette du code en C++ et en Java du diagramme.
Puis il pose plein de petites questions sur le garbage collector et des trucs du genre.
Attention, Mr Bersini se dit que nous metrisons le C++, donc les erreurs de syntaxe, les hésitations sur le code ( pointeurs et autre) sont considérés comme inacceptable.

Post nº6 (id1551) envoyé par un bavar.... ois...  le 03 Sep 2005, 16:34
Une petite erreur dans le post précédent. Pour le cas (2), le problème est signalé à la compilation et on force le compilateur dans (3) à accepter ce genre de truc car nous, programmeurs intelligents savons que cela ne posera pas de problème.

Post nº5 (id1550) envoyé par Un bavare.  le 03 Sep 2005, 15:17
Il ma dessicné un schéma UML au tableau. Une classe A dont hérite une classe B qui est elle-même composée d'une class C.

Il écrit ensuite ( sur ses grandes feuilles de papier cul ) :

void static main()
{
A a1 = new A();
A a2 = new A();
B b1 = new B();
B b2 = new B();

a1 = a2; //(1)
b1 = a2; //(2)
a1 = b1; //(3)
b1 = b2; //(4)
}

Il demande alors si tout est correcte et qu'est-ce qu'il se passe à la compilation et à l'exécution.

(1) La ligne est correcte, le référent a1 pointait vers un certain objet, en écrivant cette ligne, on le fait pointer vers l'objet vers lequel pointait a2. Comme il n'y a plus de référent qui pointait vers l'objet vers lequel a1 pointait précédemment, le garbage collector intervient et il disparait de la mémoire.
(2) Cette ligne est fausse car tout ce que sait faire un objet provenant de la classe B, un objet de la classe A ne sait pas le faire. Ainsi si j'executais une méthodeB sur b1 qui pointe en réalité sur a2, il y aura un problème. Il est signalé à l'exécution. => on retire cette ligne.
(3) Cette ligne est bonne ( raisonnement similaire au précédant mais ici cela ira ). Il nécessite néanmoins un casting afin que le compilateur la laisse passer: a1=(A)b1. On peut parler également des "Instance of" pour vérifier que le casting donnera qqch de correcte.
(4) Le pointeur b1 pointe vers un certain objet 1 et on le fait pointer vers un autre. Comme cet objet 1 est référencé également par a1 le garbage collecteur n'agira pas. On peut alors dévier sur le garbage collecteur en général.

Ensuite, il m'a demandé d'expliquer ce qu'était un clone et écrire succintement un bout de code sur cela. C'est dans le livre tel quel.

Je me suis trompé à la deuxième ligne (2), j'ai parlé du fait qu'égaler deux objets de classe différente ( dont l'une hérite de l'autre ) avec une phrase telle que b=a ne posait pas de problème car b était plus grand que a, a était contenu dans b. Il m'a alors demandé ce qu'il advenait des anciennes valeurs de B auquelles rien ne correspond dans la classe A... et m'a remis sur la voie correcte. :-). J'ai rattrapé le coup et suis sorti avec 14. Ahhh le stress...

Les cotes des personnes qui nous précédaient, moi et Mitch... : 16,16,17. Il leur a posé le même genre de petites questions. Il y en a une qui n'était pas passé ici, c'est avec la création d'objet selon différents constructeurs et la mémoire sur laquelle les objets ont été créé ( pile ou tas ) mais je ne suis pas sur, c'était tout aussi simple apparemment.

Il est vraiment cool mais ayez compris les principes de base et la réponse à ces questions-ci :-).

Post nº4 (id1548) envoyé par mitch  le 02 Sep 2005, 16:29
bon, j'arrive... c'est le méga bordel dans son bureau :p

on passe l'oral sur des feuilles de papier-cul géantes sur lesquelles il faut écrire avec des stiff qui transpercent au travers de 4 pages :p

donc, il me tape 2 classes A et B dans lesquelles il tape des attributs et des constructeurs.

il me demande ce qui se passe pour a1 = a2 (de la classe A), donc attributs pointant le mm objet, et il me demande ce que ça fait au niveau de la mémoire et ce que fait le garbage collecteur. Il faut donc dessiner les pointeurs et montrer ce que le garbage collector fait.
ensuite, il me demande comme dans un des poste précédents comment faire -je sais plus quoi- , en gros, il voulait que je clone mon a2 que g fait comme ça: a1=a2.clone()
il me demande ce qui doit se passer au niveau de la déclaration des méthodes (là g t paumé) et le réponse: redéfinir la méthode de clonage dans la classe A.

il me demande après ce qui passait au niveau de la mémoire lorsque le clonage a été effectué (et là, c t l'embrouille de nouveau) et je me souviens plus de la réponse :p

En gros, mon exam était bcp (trop?) axé sur la gestion de mémoire, de la compréhension basique hardcore, quoi... mais je mattendais vraiment pas à ça :s


au final, je suis ressorti avec seulement 10 car javais trop calé sur ses bêtes trucs de mémoires.
mais sinon, encore une fois, il est vraiment sympa et ya mm moyen de se marrer avec lui:p donc stressez mais avec modération paske transpirer dans son costard, c marrant mais ça aide pas bcp pour réfléchir:p

Post nº3 (id1544) envoyé par Stofigo  le 01 Sep 2005, 21:25
Hello

Mister Bersini m'a fait cadeau de 2 class: A et B, avec pour la B des attributs qcqs mais surtout une belle methode private void faireB().
La question: comment faire une association entre A et B qui utilise faireB?
Il fallait betement creer une methode public dans la class B genre:
public void faireautreB(){faireB()}
Ensuite il m'a demande quelle etait l'utilite d'avoir des methode privees, cf cours.
Pour finir il voulait savoir quelle etait l'etape superieur dans ce context, et c'etait l'interface. J'ai du lui ecrire le petit bout de code correspondant (quasi celui de "ou pas")et c'etait regle.
Bersinin est sympas et a pas l'air de se prendre la tete. Il veut meme bien faire l'effort de comprendre votre charabiat pour vous le reexpliquer.
J'ai pas toujours ete clair et j'ai fait qqs erreurs dans le code pourtant je sors avec 12.
Comprenez bien les notions et si en plus vous avez un peu de programmation dans les doigts, c'est dans la poche.

Post nº2 (id1543) envoyé par you you  le 01 Sep 2005, 17:00
Il m'a donné un programme avec des problèmes de casting et il demande de corriger,dire se qui se passe au niveau de l'allocation de la mémoire,etc donc il faut bien piger le garbage collector.Aussi qu'est ce qui se passe à la compilation, exécution.
Sinon il est sympa pour les points

Post nº1 (id1542) envoyé par ou pas  le 01 Sep 2005, 16:15
hello a tous on se bouscule pour donner ses question a ce que je vois...
bon il ma fait un petit diagramme UML juste deux classe d'une l'une herite de l'autre et avec redefinition de methode ds la classe fille.
ensuite il a ecrit des ligne de code et ma demander d'expliquer ce qu'il se passait (A= classe mere, B classe fille, faire() methode diff ds chaque classe)

1 A a= new A()
2 A b= new B()
3 B c= new A() ici il y a erreur de compilation pcq B ne peut etre egale a A cfr la classe fille fait plus de chose que la classe mere
4 B d= new B()
5 a.faire() methode de A
6 b.faire() methode de B
7 c.faire()//a supprimer
8 d.faire() methode de B

a quoi ca sert de faire l'instruction 2= polymorphisme, cfr l'exemple du bouquin avec les joueur de foot (le vecteur de joueur)
ensuite il ma demander c'est quoi la diff entre interface et classe abstract
et la on est parti ds les interfaces
il ma demander de coder une classe A qui interagi avec B sans voir B
j'ai rien compris sur le moment il ma bcq aider et si j'ai bien compris il faut faire comme ca

Class A{
methodeA( IB un lienB){
methodeB
}

IB = interface de B
mais lsq on appel la methodeA un lui passe en argument un objet B
puis il ma demander dans quelle classe est redefini methode B ( je crois que c'est dans la classe B, pas sur)

bilan 14/20
sur ce en esperant que d'autre suivront le mouvement

nb: l'exam se passe ds son bureau un par un 20-25 min par personne. il n'est pas stressant assez sympa c'est un dialogue entre lui et vous pour voir si vous avez compris comment ca se passe en java.
bonne m---- a tous ++

bien a vous ou pas





oraux.pnzone.net - infos - 1ms