Liste chainée en java >.<
Fermé
otakuu
Messages postés
302
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
13 mai 2014
-
13 janv. 2010 à 03:58
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 - 15 janv. 2010 à 11:12
otakuu Messages postés 302 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 13 mai 2014 - 15 janv. 2010 à 11:12
A voir également:
- Liste chainée en java >.<
- Liste déroulante excel - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Liste déroulante en cascade - Guide
- Java apk - Télécharger - Langages
3 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
13 janv. 2010 à 04:17
13 janv. 2010 à 04:17
les noms de variable objet, ce sont des références vers un objet.
Lorsque tu écris com2 = com, tu dis maintenant que la variable com2 va "pointer" vers le même objet que com.
C'est donc tout à fait normal.
Si tu veux y remedier : crée un constructeur de copie pour ta classe : Complexe(Complexe obj) qui se charge de bêtement copier les variables membres (x = obj.x; ...)
Ainsi tu pourras faire com2 = new Complexe(com) pour que com2 se réfère bien à un objet différent, mais avec les mêmes valeurs.
sinon quel est le lien avec les liste chainées dont tu parles dans le titre ?
Lorsque tu écris com2 = com, tu dis maintenant que la variable com2 va "pointer" vers le même objet que com.
C'est donc tout à fait normal.
Si tu veux y remedier : crée un constructeur de copie pour ta classe : Complexe(Complexe obj) qui se charge de bêtement copier les variables membres (x = obj.x; ...)
Ainsi tu pourras faire com2 = new Complexe(com) pour que com2 se réfère bien à un objet différent, mais avec les mêmes valeurs.
sinon quel est le lien avec les liste chainées dont tu parles dans le titre ?
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
13 janv. 2010 à 04:23
13 janv. 2010 à 04:23
voici un exemple en code pour illustrer ce que je dis :
public class TestSimple { public static void main(String[] args) { Complexe com, com2; com = new Complexe(); com.x=1; com.y=2; com2 = new Complexe(); com2.x=3; com2.y=4; System.out.printf("com = %s com2 = %s", com, com2); com2 = com; // après cette ligne il n'y a plus qu'un objet //l'ancien com2 est en fait détruit. // si je change le com2 com2.y= 5; System.out.printf("com = %s com2 = %s", com, com2); //ou si je change com, c'est en fait le meme objet qui est modifié com.x=6; System.out.printf("com = %s com2 = %s", com, com2); //par contre ici j'ai bien 2 objets indépendants Complexe com3 = new Complexe(com); System.out.printf("com = %s com3 = %s", com, com3); com3.x=200; System.out.printf("com = %s com3 = %s", com, com3); } }
public class Complexe { public int x, y; public Complexe(complexe obj) { x = obj.x; y = obj.y; } public Complexe() { } public String toString() { return Integer.toString(x) + " + i*" + Integer.toString(y); } }
otakuu
Messages postés
302
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
13 mai 2014
38
15 janv. 2010 à 11:12
15 janv. 2010 à 11:12
Merci beaucoup,
j'ai très bien compris ton exemple !
liste chainée par ce qu'en fait j'ai deux classe: listecomplexe qui contient des nombre complexe
les nombre complexe j'ai representer avec la classe complexe
je vais essayer avec l'idée que tu m'as dit et je vais voir.
merci beaucoup
j'ai très bien compris ton exemple !
liste chainée par ce qu'en fait j'ai deux classe: listecomplexe qui contient des nombre complexe
les nombre complexe j'ai representer avec la classe complexe
je vais essayer avec l'idée que tu m'as dit et je vais voir.
merci beaucoup