Ok, merci pour ces pr�cisions.
Par contre peux tu me dire ce qui se passe quand on appele la methode clone sur
une ArrayList contenant des Objets que j'aurais d�finis? Ca signifie que mes
Objets que je stocke dans des ArrayList que je veux pouvoir cloner doivent �tre
cloneable?

Herve AGNOUX a �crit :

> Le Jeudi 6 Mars 2003 11:54, HAREL Anthony a �crit :
> > Que fait exactement la m�thode clone de la classe Object?
> > Si je veux pouvoir cloner un objet, faut-il que je sucharge la
> > methode clone() de mani�re a effectivement effectuer une copie
> > profonde de mon objet au lieu de copier des r�ferences?
>
> Pour une fois, Dieu soit lou�, la m�thode clone fait ce que l'on croit qu'elle
> fait : un clone !
>
> C'est � dire que l'objet d'origine et l'objet clon� ont tous exactement les
> m�mes valeurs _ET LES MEMES REFERENCES_ d'attributs, seule la r�f�rence de
> l'objet d'origine est diff�rente de celle de l'objet clon�. Il est important
> de bien comprendre et de bien se rendre compte que les attributs ne sont pas
> clon�s, du moins dans la m�thode fournie par java.lang.Object.
>
> Si tu veux pouvoir cloner un objet, il faut que tu lui refiles
> l'impl�mentation java.lang.Cloneable, et que tu utilises la m�thode clone. Tu
> n'as besoin de surcharger cette m�thode que si tu veux la rendre publique
> (elle est protected au d�part), ou si tu veux modifier le comportement de
> clone.
>
> Modifier le comportement de clone est int�ressant si tu veux cloner aussi les
> attributs, ce qui est souvent utile, bien que pas toujours possible. Si tu le
> fait, dans ta nouvelle m�thode clone il faut toujours appeler super.clone(),
> et travailler � partir de l'objet que te renvoie cet appel.
>
> Par exemple :
>
> class Z implements java.lang.Cloneable
> {
>  Attribut nimportequoi;
>
>  public Object clone()
>  {
>   Z z = (Z)super.clone();
>   z.nimportequoi = (Attribut)nimportequoi.clone();
>   return z;
>  }
> }
>
> --
> SARL diaam informatique - 04 50 32 59 84
> Ingenierie, d�veloppements de syst�mes d'information
> http://www.diaam-informatique.com

--
_______________________________

  Anthony HAREL


  mailto:[EMAIL PROTECTED]
_______________________________


Répondre à