Hello,
j'ai des ptites interrogations qui me trottent dans la tete:
Question 1.
Quel est la difference entre la composition et l'agregation?
On m'a dit que dans la composition, quand on détruit le composé A, tous les composants B sont détruits.
Dans le cas de l'agrégation, lorsqu'on détruit A(l'agrégé?), les B (agregats?) ne le sont pas...
est-ce que ça se résume à ça en gros??
Du coup, comment on implémente ça en JAVA?
Pour implémenter la composition, les composés sont des champs de L'objet Composant.
Mais pour implémenter une agregation, ce sont aussi des champs sauf que cette fois-ci ce serait des COPIES?
Question 2.
Grossièrement, j'ai un Objet de classeA avec pour champ
ClasseA
{
int code;
}
J'ai un Objet de classeB avec pour champ
ClasseB implements Cloneable
{
String description;
ClasseA item;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // une méthode clone() implémentée de la manière suivante : public Object clone() { try { return super.clone(); } catch(CloneNotSupportedException e) { throw new InternalError(); } }
Si on fait :
alors, ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ClasseB objB = new ClasseB("ceci est un objet de classe classeB", new ClasseA()); ClasseB objB2 = objB.clone();
"obj2" possede :
un champ "description"(de type primitif String) qui a la meme référence que celui de "objB"?
=> normalement, je dirai non car le champ 'description' est d'un type primitif..??
un champ "item"(de type non primitif) qui a la meme référence que celui de "objB"?
=> ça je sais pas du tout..., mais si c'est la meme reference, cela voudrait dire qu'il faut reimplementer la méthode clone() quand le champ n'est pas de type primitif???
OK je vous l'accorde.. mes questions sont à la fois interrogatives et affirmatives mais c'est flou dans ma tête, et j'ai besoin de savoir si je ne dis pas de bêtises .. merci de m'éclairer un peu !!!!!![]()
Partager