Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problement en Java.

Les méthodes.

    9 octobre 2007 à 22:29:00

    Salut,

    mon problème vient du fait que j'ai deux méthodes dans ma classe test, une pour une addition et une autre pour afficher le résultat cependant je ne comprends pas comment le résultat est transmis à cette deuxième méthode. C'est à dire que dans la méthode main, j'appelle ma méthode et j'affiche le résultat cependant je ne sais pas comment la méthode affiche obtient le résultat de l'addition.

    Voici mon code :

    1. public class test {
    2.         int resultat;
    3.         int forme_calcul(int x, int y)
    4.         {
    5.                 resultat = x+y;
    6.                 return (resultat);
    7.         }
    8.         void affichage()
    9.         {
    10.                 System.out.println(resultat);
    11.         }
    12. public static void main(String [] args) {
    13.         test a =  new test();
    14.         a.forme_calcul(6,3);
    15.         a.affichage();
    16. }
    17. }


    Merci pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      9 octobre 2007 à 22:46:50

      déjà c'est une mauvaise façon de faire que de créer une instance de ta classe principale d'autant plus dans la fonction main.

      m'enfin, si il n'y a pas besoin de passer la variable à la fonction affichage, c'est tout simplement que toutes les méthodes d'une classe ont accès aux variables de cette classe (ici "resultat" est donc commun à "forme_calcul" et "affichage")
      • Partager sur Facebook
      • Partager sur Twitter
        9 octobre 2007 à 22:53:26

        Merci pour ton aide.

        Tu as raison, c'est une mauvaise façon de faire j'aurai dû créer un fichier avec ma classe et un autre avec ma méthode main mais ce ne sont que des tests.

        Donc si je reprends ce que tu dis, cela veut dire que lorsque j'appelle ma méthode forme_calcul, celle-ci a accés à l'attribut resultat. Donc vu que la valeur de resultat change puisque l'on appelle la méthode forme_calcul, la méthode affichage récupère cette valeur.

        Une question un peu bizarre : comment la méthode affichage fait t-elle pour ne pas confondre l'attribut resultat tout au début et l'attribut resultat aprés (lorsque resultat est dans forme_calcul). Est-ce parce que la méthode affichage récupère la dernière valeur de resultat aprés appel de la méthode forme_calcul ?
        • Partager sur Facebook
        • Partager sur Twitter
          9 octobre 2007 à 23:13:37

          Citation : dod

          Une question un peu bizarre : comment la méthode affichage fait t-elle pour ne pas confondre l'attribut resultat tout au début et l'attribut resultat aprés (lorsque resultat est dans forme_calcul). Est-ce parce que la méthode affichage récupère la dernière valeur de resultat aprés appel de la méthode forme_calcul ?


          pas trop compris ta question, mais en fait il n'y a qu'une et une seule variable "resultat".
          C'est la même chose que ce code suivant :
          1. public class test {
          2.  public static void main(String [] args) {
          3.   int resultat;
          4.   resultat = args[1] + args[2]; // x + y
          5.   System.out.println(resultat);
          6.  }
          7. }
          • Partager sur Facebook
          • Partager sur Twitter
            9 octobre 2007 à 23:36:23

            Là j'utilise la poo pour en comprendre les principes. Le problème c'est que je ne comprenais pas que la méthode affichage récupérait la valeur de resultat aprés l'appel de la méthode forme_calcul.

            Merci pour ton aide.

            Sinon j'ai un autre problème avec une fonction qui aprés compilation me renvoit cette erreur :

            non-static method calcul(int, int) cannot be referenced from a static context

            voici le code :

            1. public class test {
            2. int calcul (int x,int y)
            3.         {
            4.                 return (x+y);
            5.         }
            6. public static void main(String [] args) {
            7.         calcul(6,3);//ici calcul n'affichera rien.    
            8. }
            9. }
            • Partager sur Facebook
            • Partager sur Twitter
              9 octobre 2007 à 23:57:45

              il faut qualifier la fonction "calcul" de "static" car quand la JVM appelle ton programme elle ne l'instancie pas elle appelle directement main car c'est une fonction statique.
              Comme calcul n'est pas "static" elle à besoin d'un objet (via "test t = new test()) donc elle peut pas être appelée dans une méthode statique (va voir le dernier chapitre de mateo dans le cours C++, il parle de "static"
              • Partager sur Facebook
              • Partager sur Twitter

              Problement en Java.

              × 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