probleme d'héritage - Java - Programmation
Marsh Posté le 10-01-2006 à 17:20:40
Il me semble, d'après le code que je vois, que ton objet CourbeGraph partage le même tableau de points
que l'objet courbe reçu en paramètre. Donc,si tu changes (en ajoutant un point par exemple) ce tableau, cela
le change pour tes deux objets.
Pour résoudre le problème, il faudrait pour ton objet CourbeGraph que tu fasses une copie de courbe.getListePoint().
En espérant que cela t'aide
Marsh Posté le 10-01-2006 à 17:33:34
C'est ce que j'avais pensé également, c'est pour cela que j'ai mis la ligne
Code :
|
getListePoint() me renvoie l'ArrayList listePoint de l'objet courbe. Donc, d'aprés moi, la listePoint de ma class CourbeGraph est une copie de seul de courbe, mais ne pointe pas sur la même reference.
Je pense donc que l'erreur est ailleur (mais je peux me tromper)
Marsh Posté le 10-01-2006 à 17:45:01
blaise_laporte a écrit : C'est ce que j'avais pensé également, c'est pour cela que j'ai mis la ligne
|
oui tu te trompes, ce n'est pas une copie, c'est la meme reference
Marsh Posté le 10-01-2006 à 17:55:33
Trabadja lamacoere!!!!
C'est bon, j'ai compris. Comme de bien entendu, bétise toute simple!!
Pour info, si d'autre ont le même probleme:
Dans getListePoint(), je faisais:
Code :
|
alors qu'en faisant
Code :
|
Je resoue mon probleme!
Merci!
Marsh Posté le 11-01-2006 à 11:49:50
Du coup, j'ai un doute.
Dans java, une méthode get() doit elle renvoyer l'objet ou une copie de l'objet?
Je m'explique: j'ai ma méthode getListePoint() qui va renvoyer l'ArrayList listePoint, mais par convention, celle-ci doit elle faire
Code :
|
ou bien:
Code :
|
merci.
Marsh Posté le 13-01-2006 à 19:07:30
On ne fais jamais de new dans un get. on fait que retourner
Marsh Posté le 10-01-2006 à 17:08:56
Voila, j'ai un gros probleme avec l'héritage d'une classe abstraite.
J'ai l'impression que c'est moi qui est pas compris quelque chose, mais j'arrive pas à voir quoi...
J'ai une classe abstraite Courbe qui me definie une ArrayList et des méthode pour la manipuler.
De cette classe hérite deux autre classe, CourbeMesure et CourbeGraph
Le probleme me vient de CourbeGraph dont voici le constructeur:
(Cette classe possede une méthode paint() pour peindre la courbe dans le Graphics2D, mais est ignorée dans ce probleme)
L'ennui étant que si je fais une modification de l'objet CourbeGraph (this.addPoint(30,5), l'objet Courbe reçut en parametre est lui aussi modifié! Pourtant, ce ne sont pas les même objet (this.equals(courbe) : false)
Je me doute bien qu'il doit sagir d'une lacune de ma part, mais j'ai beau relire mes bouquin, j'arrive pas à comprendre...
Merci de votre aide
Message édité par blaise_laporte le 10-01-2006 à 17:10:34