IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Objets et valeurs incompréhensibles


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Objets et valeurs incompréhensibles
    Bonjour,

    Voilà, je suis entrain de faire un programme qui permet de résoudre un rubicks cube . Je me rends comte à un moment donnée que certaines variables ne prennent pas les valeurs qu'elle "devrait" ( que je voudrai ) . Je fait donc 2 classes pour tester ce qui ne va pas . Et la effectivement je me rends compte que les variables ne prennent pas les valeurs que j'imaginais . Il doit donc me manquer une connaissance essentiel pour comprendre ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    public class Test {
    	public int a;
    	public Test(int a){
    		this.a=a;
    	}
    }
     
     
    public class Main {
     
    	public static void main(String[] args) {
    		Test t = new Test(4);
    		Test t2 = t;
    		t.a = 8;
    		System.out.println(t2.a);
     
    	}
     
    }
    Bonjour, voila mon problème. Ce code affiche 8 à l’exécution au lieu d'afficher 4 . Je ne comprend tout simplement pas pourquoi . J'ai dèja vu quelque part un truc, comme quoi certaines variables avaient des valeurs réelles alors que d'autres n'avait que des liens vers les valeurs d'une autre variable . Ça vient de la ?

    Merci.

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Salut MrMickey,

    La quinzième ligne de ton code dit tout :
    .
    En effet par opposition aux types primitifs, l'affectation entre objets en Java se fait par reférence.
    Après donc ton instruction , l'objet t2 désigne donc la même reférence que l'objet t
    C'est dire qu'ils pointent tous les deux vers un seul emplacement mémoire où est bien sûre stocké a.
    Si tu veux t.a et t2.a désigneront le même attribut.

    J'ai été peu bavard mais j'espère que tu as compris quelque chose !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    OK, j'ai compris . Mais du cout je fait comment pour creer un objet qui soit une copie d'un autre objet ?

  4. #4
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 198
    Points
    198
    Par défaut
    Regarde au niveau de la fonction clone().

    Sinon, tu n'as qu'à créer ta propre méthode permettant la copie de ton objet.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Donc va falloir que je redéfinisse la méthode clone() .
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer des objets par valeur
    Par Promeneur dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 28/03/2008, 17h45
  2. Copier un objet par valeur ?
    Par Totanne dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/03/2008, 14h22
  3. Réponses: 5
    Dernier message: 27/10/2007, 10h11
  4. [POO] Objet par valeur
    Par seb34 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/08/2006, 22h49
  5. [debutant][erreur] pas un Objet ou valeur Null
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo