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 :

choix methode surdéfinie


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut choix methode surdéfinie
    Bonjour !

    Voici 1 méthode 3 fois surdéfinies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    methode1(int a, float b)
    methode1(float, float b)
    methode1(float a, int b)
    Et voici l' un des appels de cette méthode surdéfinie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    short s; float f;
    methode1(s, f);

    Je pense que dans cette situation, seules 2 méthodes conviennent. Les deux premières. Et celle qui convient le mieux, c' est la première.
    La conversion de short en float consomme plus de mémoire que la conversion de float en short.

    Votre avis SVP ?

    Je demande votre avis parce que le livre dans lequel la question est posée donne pour réponse :

    Les 3 nméthodes conviennnent et la première convient. Nous sommes au moins d' accord pour la méthode qui convient. Mais dire que les méthodes conviennent, ça m' étonne. D' autant plus que c' est le livre de claude DELANNOY Programmer en Java

    C' est quand même une bonne référence. Et il n y a même pas d' explication.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Citation Envoyé par Nayila Voir le message
    Je pense que dans cette situation, seules 2 méthodes conviennent. Les deux premières. Et celle qui convient le mieux, c' est la première.
    Effectivement, la premiere sera choisie.

    La troisieme ne convient pas, parce qu'un float ne peut pas etre converti implicitement en int.

    Les methodes 1 et 2 pourraient convenir, mais la premiere sera choisie par rapport à la deuxieme, parce qu'elle est plus specifique (tous ses parametres peuvent être convertie dans les types des parametres correspondant de la deuxieme).

    Citation Envoyé par Nayila Voir le message
    La conversion de short en float consomme plus de mémoire que la conversion de float en short.
    Faux. La mémoire n'intervient pas dans la décision.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Citation Envoyé par Sanguko Voir le message
    Effectivement, la premiere sera choisie.

    La troisieme ne convient pas, parce qu'un float ne peut pas etre converti implicitement en int.

    Les methodes 1 et 2 pourraient convenir, mais la premiere sera choisie par rapport à la deuxieme, parce qu'elle est plus specifique (tous ses parametres peuvent être convertie dans les types des parametres correspondant de la deuxieme).


    Faux. La mémoire n'intervient pas dans la décision.
    Faux. La mémoire n'intervient pas dans la décision.
    Ah bon ? ... regardez donc le 3ème message de cette page : http://www.developpez.net/forums/sho...d.php?t=449859

    qu' en pensez-vous ?

    Et si la mémoire n' intervient pas. Sur quel critère se base le compilateur pour faire le choix ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Citation Envoyé par Nayila Voir le message
    Ah bon ? ... regardez donc le 3ème message de cette page : http://www.developpez.net/forums/sho...d.php?t=449859

    qu' en pensez-vous ?
    Je continue de penser que c'est faux. Par exemple, int et float font 4 octets tous les deux, le critère de choix n'est pas la taille mémoire des arguments.

    Citation Envoyé par Nayila Voir le message
    Et si la mémoire n' intervient pas. Sur quel critère se base le compilateur pour faire le choix ?
    C'est ecrit dans les specs, ici. Je n'ai fait que paraphraser.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Par défaut
    "Faux. La mémoire n'intervient pas dans la décision."

    Je suis 100% d'accord. Le choix de la méthode la plus spécifique se fait en fonction de critère de convertion décrit dans le JLS.

    Cette specification est idépendante de toute implementation et donc de toute consideration sur la mémoire.

Discussions similaires

  1. choix methode surdéfinie
    Par Nayila dans le forum Langage
    Réponses: 7
    Dernier message: 28/11/2007, 12h00
  2. Choix de Methode DAO ou shell ?
    Par Jertho dans le forum VBA Access
    Réponses: 4
    Dernier message: 24/06/2007, 19h54
  3. [D6] Choix composant ou methode pour mise en page
    Par dridri86 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 23/12/2006, 22h09
  4. Choix d'un langage : existe-t-il une méthode ?
    Par if_zen dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 21/04/2006, 15h35
  5. Faire Choix du fichier destination methode GET grace a JS
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2005, 16h26

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