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 :

[Fonctions] comment ajouter un paramètre optionnel dans les arguments


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut [Fonctions] comment ajouter un paramètre optionnel dans les arguments
    salut je veux savoir comment je peux ajouter un paramètre optionnel dans les arguments d'une fonction
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void ajouter(String a,int b,Boolean c){
    .....
    }
    // comment je peux avoir le choix de nombres d'arguments utilisés.
    ajouter(a,b) 
    ajouter(a)
    et merci en avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    Bonjour,

    A ma connaissance, ce n'est pas possible, il faut soit 3 méthodes, soit appeler cette méthode avec les bons arguments.

    En JAVA 5, l'ellipse permet d'avoir un nombre variable d'argument, à condition que ceux ci soit de même instance.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par JohnNC Voir le message
    A ma connaissance, ce n'est pas possible, il faut soit 3 méthodes, soit appeler cette méthode avec les bons arguments.
    Il faut bien 3 méthodes, mais il faut bien sûr éviter de dupliquer le code en appelant la méthode la plus complète.

    Par exemple si on considère que les paramètres b et c prennent les valeur 0 et false lorsqu'il sont absent, on aura alors le code suivant :

    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
    public void ajouter(String a,int b,Boolean c){
        // .....
        // Tout le code de la méthode
        // .....
    }
     
    public void ajouter(String a,int b){
        // On se contente d'appeler la version avec plus de paramètre,
        // en définissant une valeur par défaut pour c
        ajouter(a, b, false);
    }
     
    public void ajouter(String a){
        // On se contente d'appeler la version avec plus de paramètre,
        // en définissant une valeur par défaut pour b
        ajouter(a, 0);
    }

    a++

  4. #4
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut
    Salut,

    Il faut bien 3 méthodes, mais il faut bien sûr éviter de dupliquer le code en appelant la méthode la plus complète.
    donc c'est nécessaire de surcharger la méthode il y a pas un mots clé pour déclarer argument comme optionnel?!.
    bon ta méthode peut résoudre le problème mais il y a plusieurs appelles à chaque fonction,supposant que j ai une fonction avec 9 ou 10 arguments ca devient plus compliqué.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par mitnick2006 Voir le message
    il y a pas un mots clé pour déclarer argument comme optionnel?!.
    Non, tout ce qu'il y a, c'est l'ellipse (comme mentionné) mais qui nécessite que tout soit du meme type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    static int sum (int ... numbers)
    {
       int total = 0;
       for (int i = 0; i < numbers.length; i++)
            total += numbers [i];
       return total;
    }
    //....
    sum(1,2);
    sum(1,2,3,4,5,6,7,8);
    Si tu veux faire 10 méthodes, chacune avec un argument en moins, libre à toi. En java, on se contente normalement de créer les méthodes qui ont vraiment une raison d'être. Par exemple, une méthode sans argument (tout aux valeurs par défaut), une ou deux méthodes à un seul ou deux argument (pour avoir quelques comportement typique) et un méthode avec tous les argument pour ceux qui veulent un total controle de l'appel.

    Note que, 10 arguments, pour une méthode, c'est beaucoup!

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mitnick2006 Voir le message
    donc c'est nécessaire de surcharger la méthode il y a pas un mots clé pour déclarer argument comme optionnel?!.
    Non.

    Citation Envoyé par mitnick2006 Voir le message
    bon ta méthode peut résoudre le problème mais il y a plusieurs appelles à chaque fonction,supposant que j ai une fonction avec 9 ou 10 arguments ca devient plus compliqué.
    "Compliqué" ?
    Tu m'aurais dit "long" je comprendrais mais je ne vois pas où est la complexité ?

    a++

  7. #7
    Membre régulier Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Non.


    "Compliqué" ?
    Tu m'aurais dit "long" je comprendrais mais je ne vois pas où est la complexité ?

    a++
    je sais que dans la programmation c préférable d'éviter l'utilisation des appelles successives car elles augmentent la complexité du programme.
    c'est on fais comparaison avec VB il y a un mot clé Optional qui donne le choix d'utiliser un argument ou non donc cette méthode n'existe pas en java. bon je vais essayer d'utiliser ces méthodes posées dans le forum et merci pour m' aider

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/08/2021, 14h52
  2. Réponses: 3
    Dernier message: 27/09/2010, 19h16
  3. Paramètres optionnels dans une fonction javascript
    Par _ash_ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/07/2008, 09h46
  4. Paramètre optionnel dans une fonction
    Par bractar dans le forum Langage
    Réponses: 3
    Dernier message: 10/03/2006, 17h02
  5. paramètre optionnel dans une fonction
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2006, 15h29

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