Partage
  • Partager sur Facebook
  • Partager sur Twitter

Remplissage de tableau

Sujet résolu
    5 mai 2012 à 0:17:50

    Bonjour à tous :)

    Je voudrais juste poser une petite question, quant au remplissage d'un tableau dans une classe déclaré depuis une autre classe... Je m'explique :p

    J'ai une classe pan, où se trouve un tableau "ObjetCase". Je souhaite remplir sa coordonnée, définie par la variable "ObjSelec", par la case d'après du tableau... :-°

    En gros, j'aimerais que :
    pan.setObjetCase()[pan.getObjSelec() - 1]

    prenne la valeur de

    pan.getObjetCase()[pan.getObjSelec()]

    J'ai essayé, ça qui ne marche pas :
    pan.setObjetCase(pan.getObjetCase()[pan.getObjSelec()])[pan.getObjSelec() - 1];
    


    La réponse est peut-être toute bête, mais je ne sais pas déclarer le changement d'une valeur de tableau depuis une autre classe... :(

    Si quelqu'un pouvait me répondre, ce serait super ;)
    • Partager sur Facebook
    • Partager sur Twitter
      5 mai 2012 à 10:30:46

      Essaie :
      //Je suppose que le tableau stocke des objets...
      Object objetAModifier = pan.getObjetCase()[pan.getObjSelec() - 1];
      Object objetACopier = pan.getObjetCase()[pan.getObjSelec()];
      objetAModifier = objetACopier;
      


      Tu peux aussi essayer d'écrire plus proprement ton code. Il faut prévoir la maintenabilité ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 mai 2012 à 10:38:57

        Citation : Ulspider


        //Je suppose que le tableau stocke des objets...
        Object objetAModifier = pan.getObjetCase()[pan.getObjSelec() - 1];
        Object objetACopier = pan.getObjetCase()[pan.getObjSelec()];
        objetAModifier = objetACopier;
        



        Jamais de la vie. Là tu changes la référence de la variable objetAModifier, sûrement pas celle dans le tableau.



        @Java.com
        Sans vouloir être méchant, il faut sérieusement revoir les bases du langage (tableaux) et de l'objet.

        Si tu as du mal à visualiser, découpe en plusieurs instructions :
        type[] tab = pan.getObjetCase(); // type[] = type de objetCase
        int idx = pan.getObjSelec();
        tab[idx] = tab[idx + 1]; // D'après ta description "Je souhaite remplir sa coordonnée, définie par la variable "ObjSelec", par la case d'après du tableau".
        

        Ce qui est identique à :
        pan.getObjetCase()[pan.getObjSelec()] = pan.getObjetCase()[pan.getObjSelec() + 1];
        
        • Partager sur Facebook
        • Partager sur Twitter
          5 mai 2012 à 11:09:16

          Dans ton cas aussi tu changes la référence si type est un objet.

          Si le tableau contient des int par exemple, mon code devient :
          //Je suppose que le tableau stocke des objets...
          int objetAModifier = pan.getObjetCase()[pan.getObjSelec() - 1];
          int objetACopier = pan.getObjetCase()[pan.getObjSelec()];
          objetAModifier = objetACopier;
          

          Équivalent à ton code à l'indice du tableau prêt.

          Après pour les indices je me suis dis qu'il devais avoir raison, sa phrase n'étant pas clair :)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            5 mai 2012 à 11:43:30

            Que le tableau contienne des objets ou des primitifs, ma remarque est la même. Exécute ton code puis affiche pan.getObjetCase()[pan.getObjSelec() - 1] : il n'aura pas changé.
            • Partager sur Facebook
            • Partager sur Twitter
              5 mai 2012 à 12:00:05

              Merci beaucoup à tous les deux =)
              En fait, mon tableau contient des int, je l'ai appelé ObjetCase() en raison du contexte de mon programme...
              @Enax : Pour ta ligne de code :
              pan.getObjetCase()[pan.getObjSelec()] = pan.getObjetCase()[pan.getObjSelec() + 1];
              

              Merci beaucoup, ça fonctionne, simplement je pensais qu'on ne pouvait changer la valeur du tableau seulement par "set" et non pas "get"... ;)
              • Partager sur Facebook
              • Partager sur Twitter
                5 mai 2012 à 12:03:28

                Citation : Java.com

                Merci beaucoup à tous les deux =)
                En fait, mon tableau contient des int, je l'ai appelé ObjetCase() en raison du contexte de mon programme...
                @Enax : Pour ta ligne de code :

                pan.getObjetCase()[pan.getObjSelec()] = pan.getObjetCase()[pan.getObjSelec() + 1];
                


                Merci beaucoup, ça fonctionne, simplement je pensais qu'on ne pouvait changer la valeur du tableau seulement par "set" et non pas "get"... ;)



                En utilisant setObjetCase(), tu changes le tableau en entier. En utilisant getObjetCase()[i], tu changes la valeur de l'indice i du tableau retourné par getObjetCase(). ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mai 2012 à 15:46:32

                  Ah ok je ne savais pas merci =)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Remplissage de tableau

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown