Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1581 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  références

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

références

n°2179474
antiseptiq​ueincolore
zzzzzzzzzdjhgdfcjdsc zedufkgkz
Posté le 09-03-2013 à 12:52:25  profilanswer
 

Bonjour,
scusez.
La question est vraiment bete. Je voudrais savoir pourquoi java se comporte comme ça?
 
J'ai un premier objet:

Code :
  1. public class obj {
  2.    int a=0;
  3.    public void display()
  4.    {
  5.       System.out.println(a);
  6.    }
  7. }


 
Un deuxième objet, conteneur

Code :
  1. public class conteneur {
  2. private obj input;
  3. public void setInput(obj input)
  4. {
  5. this.input=input;
  6. }
  7. public obj getInput(){
  8. return input;
  9. }
  10. }


 
 
Cas d'utilisation:

Code :
  1. obj maclasse1 = new obj();
  2.  conteneur monC = new conteneur();
  3.  monC.setInput(maclasse1);
  4.  obj maclasse2 = new obj();
  5.  maclasse2.a=1;
  6.  maclasse1=maclasse2;
  7.  maclasse1.display();
  8.  monC.getInput().display();


 
Pourquoi est-ce que dans le premier cas, ça affiche 1 (c'est une référence, et je m'attends au résultat) et dans le cas conteneur ça affiche zéro? Quelle est la règle?

mood
Publicité
Posté le 09-03-2013 à 12:52:25  profilanswer
 

n°2179543
Anonymouse
Posté le 10-03-2013 à 15:55:18  profilanswer
 

Code :
  1. 1)  obj maclasse1 = new obj();
  2.    2)  conteneur monC = new conteneur();
  3.    3)  monC.setInput(maclasse1);
  4.    4)  obj maclasse2 = new obj();
  5.    5) maclasse2.a=1;
  6.    6)   maclasse1=maclasse2;
  7.    7)  maclasse1.display();
  8.    8)  monC.getInput().display();


 
http://img11.hostingpics.net/pics/636535Sansnom1.png


Message édité par Anonymouse le 10-03-2013 à 15:58:52
n°2179549
antiseptiq​ueincolore
zzzzzzzzzdjhgdfcjdsc zedufkgkz
Posté le 10-03-2013 à 18:11:14  profilanswer
 

merci, tu t'es donné du mal :-)
Ce que je ne comprends pas.
En terme de pointeurs C, je m'attendrais à :
 
input pointe sur maclasse1 et comme maclasse1 je viens de dire qu'elle pointe sur maclasse2 on aurait du avoir différent de zéro. Et en plus c'est ce que tu écris à la ligne 6 :-)
 
J'ai l'impression qu'il me manque une notion qui a l'air typique java. Je ne viens pas de java, il y a un truc qui me choque
 
Pourquoi maclasse1 pointe sur l'objet mclasse2, alors que input l'a copié? Pourquoi input fait une copie?

Message cité 1 fois
Message édité par antiseptiqueincolore le 10-03-2013 à 18:14:02
n°2179554
Anonymouse
Posté le 10-03-2013 à 20:03:06  profilanswer
 

antiseptiqueincolore a écrit :

merci, tu t'es donné du mal :-)
Ce que je ne comprends pas.
En terme de pointeurs C, je m'attendrais à :
 
input pointe sur maclasse1 et comme maclasse1 je viens de dire qu'elle pointe sur maclasse2 on aurait du avoir différent de zéro. Et en plus c'est ce que tu écris à la ligne 6 :-)
 
Non input pointe sur l'objet pointé par maclasse1. On manipule des "obj*" comme en C
 
J'ai l'impression qu'il me manque une notion qui a l'air typique java. Je ne viens pas de java, il y a un truc qui me choque
 
Pourquoi maclasse1 pointe sur l'objet mclasse2, alors que input l'a copié? Pourquoi input fait une copie?
 
a) Les paramètres passés en java à des méthodes sont toujours passés par copie, comme en C pour les fonctions.
b) Les objets manipulés en java sont toujours manipulé par des références.
 
Input ne fait pas une copie de l'objet il fait une copie de la référence maclasse1.
maclasse1 pointe sur ma classe2 car en faisant maclasse1 = maclasse2 on copie la référence maclasse2 dans maclasse1.
 


Message édité par Anonymouse le 10-03-2013 à 20:11:32
n°2179556
antiseptiq​ueincolore
zzzzzzzzzdjhgdfcjdsc zedufkgkz
Posté le 10-03-2013 à 20:36:11  profilanswer
 

ok  :jap:  
je vais essayer de voir les choses comme ça  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  références

 

Sujets relatifs
Problème d'imbrication de références et de tableaux de référencesDans ACCESS, pb références EXCEL
Utilité des références et des const[eclipse/php] des références croisées
[VBA Excel] Références manquantes [Résolu]select : deux références sur une même table
question sur les référencesCas où les références remplacent mal les pointeurs ?
References et objets, bonne pratiquePetit problème avec un hash, des tableaux et des références
Plus de sujets relatifs à : références


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR