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

avec Java Discussion :

Comment passer en paramètre d'une méthode, une autre méthode ?


Sujet :

avec Java

  1. #1
    Invité
    Invité(e)
    Par défaut Comment passer en paramètre d'une méthode, une autre méthode ?
    Bonjour,

    voila je vous explique la situation, j'ai dans une même classe 2 méthodes.

    methode1() et methode2() qui retourne un type donnée.

    j'ai maintenant une 3émme méthode qui elle utilise l'une des deux méthode et pour s'avoir laquelle utilisé faux que je passe la méthode en paramètre une des technique possible mais je sais pas comment l'utilisé si quelqu'un peux juste me guidé vers où je peux chercher.

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,
    Si tes méthodes 1 et 2 retournent un type int par exemple, tu declares dans ta 3ieme methode un parametre de type int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public int methode1() {
              //blablabla...
    }
    public int methode2() {
              //blablabla...
    }
    public boolean methode3(int paramtre) {
              //blablabla...
    }
    ensuite tu passes ta methode 1ou 2 en parametre de la methode3 qui dans mon exemple te donnera un boolean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    boolean bool = methode3(methode2());

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Bonjour,

    On ne peut pas passer de méthode en paramètre, en Java. Ou pour le dire autrement, les méthodes ne sont pas des types en Java.

    Mais on peut faire quelque chose, qu'on appelle en général le pattern stratégie, ou les functors.

    Bref, l'idée est de représenter l'action à faire, par des objets, ces objets implémentant une interface commune :

    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
    interface Strategie {
      int recupererInt();
    }
     
    class Strategie1 implements Strategie {
      @Override
      public int recupererInt() {
         // faire la méthode 1
      }
    }
     
    class Strategie2 implements Strategie {
      @Override
      public int recupererInt() {
         // faire la méthode 2
      }
    }
    method3 ressemblera à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void method3(Strategie strategie) {
      int resultat = startegie.recupererInt();
      // et tout ce que tu veux faire d'autre.
    }
    Et pour l'appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    method3(new Strategie1());
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Oui excusez moi je n'avais pas compris la question. Une autre solution consiste à passer par une varialble intermédiaire qui sera passée en parametre de la methode3 à la place des methodes 1 ou 2 avec un test dans la methode3 qui depend de ce paramètre pour savoir laquelle utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public int methode1() {
              //blabla...
    }
    public int methode2() {
              //blabla...
    }
    public void methode3(boolean param) {
              int resultat
              if (param)
                        resultat = methode1();
              else
                        resultat = methode2();
    }

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci ludo j'ai penser a la même chose sauf que il faux que j'utilise les interfaces est tous et j'arrive pas a saisir l'importance d'utilisé les interfaces pour ça parce que j'ai deux classe qui utilise les methode 1 et 2 bien sur pas de la même façon et une d'entre eux qui utilise la methode 3 mais je croie que j'ai une idée pour utilisé ce que thelvin a dit

    Merci les pros

  6. #6
    Invité
    Invité(e)
    Par défaut
    ça me semble pas si évident que ça tous ça je vais essayez de reposer la situation

    ce que j'ai :
    - Une class Class1{}
    - Une class Class2{}
    - trois methode diferent qui return un type donnée ( int String etc..)
    - une methode qui return qussi un type mais pour faire ce qu'elle a a faire elle utilise une de c'est trois methode qui precede le chois de la methode a utiliser ce fais par l'injection de la methode a utiliser en paramétre.
    - La classe 2 elle utilise aussi les 3 methode mais redefinit autrement
    je veux présiser que les methode en besoin des donnés des classe pour faire ce qu'il on a faire

    maintenan si j'utilise les interface logiquement je doit faire une classe par methode qui va implémenter l'interface et ces classe vont heriter de Class1 où Class2.

    du coup j'aurai trois classe avec une seule methode est-ce que c'est bien de faire ça en Java où bien c'est mieux de faire autrement

    Merci

  7. #7
    Invité
    Invité(e)
    Par défaut
    Solution trouver avec le paterne Strategie maintenant je rencontre un autre problème donc je poste un autre poste pour ce problème.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/02/2015, 01h20
  2. Réponses: 8
    Dernier message: 09/12/2008, 10h04
  3. Réponses: 2
    Dernier message: 11/10/2006, 13h37
  4. Réponses: 8
    Dernier message: 17/03/2006, 08h06

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