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 :

Creér une classe à partir d'une interface et une méthode pour utiliser un objet sous forme de chaîne de caract


Sujet :

Langage Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Creér une classe à partir d'une interface et une méthode pour utiliser un objet sous forme de chaîne de caract
    Bonjour,
    j'ai un problème en java que j'ai du mal à résoudre:
    Créez une classe KeyValImpl qui respecte l'interface KeyVal.
    Redigez le code de la méthode add() pour qu'elle enregistre l'indice et la valeur
    qui lui sont passés en paramètres et celui de la méthode get() pour qu'elle renvoie
    la valeur correspondant à l'indice qui lui est passé en paramètre.

    Construisez la classe de telle façon que lorsqu'elle est utilisée comme une chaîne de caractères,
    elle renvoie ce qu'elle contient dans le format suivant:
    key1:val1,key2:val2,key3:val3 .

    L'ordre des éléments renvoyés n'est pas important mais tous les éléments doivent être renvoyés dans ce
    format exact.
    Voici le code à compléter:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class ExerciceImpl {
     
        // Voici des exemples d'appel des méthodes d'un object KeyValImpl
        // ainsi qu'un appel de l'objet lui même en tant que chaîne de caractères.
        public void runExercise( String[] argv ) throws Exception {
            KeyValImpl keyVal = new KeyValImpl();
            keyVal.add( "apples", "12" );
            keyVal.add( "pears", "11" );
            keyVal.add( "oranges", "13" );
            System.out.println("<pre>");
            System.out.println( keyVal.get("oranges") );
            System.out.println( keyVal );
            System.out.println("</pre>");
        }
     
    }
     
    interface KeyVal {
        public void add( String key, String val );
        public String get( String key );
    }
     
    /*----------NE MODIFIEZ PAS LE CODE AU DESSUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
     
     
    /***Entrezvotre code ici***/
     
        /*----------NE MODIFIEZ PAS LE CODE EN DESSOUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
     
    }
    Voici le code que j'ai proposé:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public class ExerciceImpl {
     
        // Voici des exemples d'appel des méthodes d'un object KeyValImpl
        // ainsi qu'un appel de l'objet lui même en tant que chaîne de caractères.
        public void runExercise( String[] argv ) throws Exception {
            KeyValImpl keyVal = new KeyValImpl();
            keyVal.add( "apples", "12" );
            keyVal.add( "pears", "11" );
            keyVal.add( "oranges", "13" );
            System.out.println("<pre>");
            System.out.println( keyVal.get("oranges") );
            System.out.println( keyVal );
            System.out.println("</pre>");
        }
     
    }
     
    interface KeyVal {
        public void add( String key, String val );
        public String get( String key );
    }
     
    /*----------NE MODIFIEZ PAS LE CODE AU DESSUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
     
     
    class KeyValImpl implements KeyVal {
     
     
     
     
    }
        public void add(String key,String val){
     
        }
        public String get(String key){
            return key;
        }
     
        /*----------NE MODIFIEZ PAS LE CODE EN DESSOUS DE CETTE LIGNE, IL SERA REINITIALISE LORS DE l'EXECUTION----------*/
     
    }
    je sais que ce n'est pas correcte mais je ne sais pas comment traduire la phrase suivante
    en code java:
    "Créez une classe KeyValImpl qui respecte l'interface KeyVal",d'abord une classe qui respecte
    une interface ,moi je ne sais pas ce que ça signifie,pour moi respecter une interface c'est implémenter l'interface
    est ce que j'ai raison?
    Ensuite,je dois rediger le code de la méthode add() pour qu'elle enregistre l'indice et la valeur qui lui sont passés en paramètre.
    Comment je traduis la phrase:" enregistre l'indice et la valeur" en code java?enregistrer un indice et une valeur ,je ne sais pas
    comment l'exprimer en code java.
    Ensuite la dernière partie:"Construisez la classe de telle façon que lorsqu'elle est utilisée comme une chaîne de caractères,
    elle renvoie ce qu'elle contient dans le format suivant:
    key1:val1,key2:val2,key3:val3 .",je ne sais pas comment l'exprimer en code java.

    Avez vous des idées pour moi svp?

  2. #2
    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
    Citation Envoyé par master MI Voir le message
    Avez vous des idées pour moi svp?
    Passe un peu moins de temps à douter du sens des mots, et fais preuve de bon sens.

    Oui, quand ils parlent de respecter l'interface ils veulent dire l'implémenter. Évidemment.

    Quand ils parlent d'enregistrer quelque chose, ça n'a rien à voir avec Java, c'est du français. Ils veulent dire que ce soit pas perdu et oublié après que "l'enregistrement" ait été fait.
    Bref il faut que la méthode add() fasse ce qu'il est évident qu'elle doit faire.

    Pour la dernière partie je t'accorde qu'elle est formulée n'importe comment, alors ok.

    "quand cette classe est utilisée comme une chaîne de caractère", ils veulent dire "quand il y a une conversion automatique d'une instance de cette classe en chaîne de caractère, par exemple avec System.out.println() ou bien en faisant "" + instanceDeLaCLasse."
    Et si tu ne sais pas comment c'est fait, ben, ces conversions automatiques sont faites en appelant la méthode toString() de la classe. Il suffit de redéfinir toString().
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut
    D'accord

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut
    j'ai une solution que j'ai testé et qui marche mais j'ai des doutes,voici la solution:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    class KeyValImpl implements KeyVal {
        private final Map<String, String> map;
     
        public KeyValImpl() {
            map = new HashMap<>();
        }
     
        @Override
        public void add(String key, String val) {
            map.put(key, val);
        }
     
        @Override
        public String get(String key) {
            return map.get(key);
        }
     
        @Override
        public String toString() {
            StringBuilder sb = new StringBuilder();
            for (Map.Entry<String, String> entry : map.entrySet()) {
                if (sb.length() > 0)
                    sb.append(",");
                sb.append(entry.getKey());
                sb.append(":");
                sb.append(entry.getValue());
            }
            return sb.toString();
        }
    Vous en pensez quoi svp?

  5. #5
    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
    Ben, c'est exactement ça.

    Vu l'énoncé, je me demande si tu as le droit d'utiliser Map et HashMap, parce que finalement KeyVal c'est une Map simpliste. Et si tu as pas le droit ça complique pas mal.

    Mais si tu as le droit, ben c'est pile ce qu'il fallait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut
    le code est juste et j'obtient le resultat demandé mais par contre
    je ne sais pas si j'ai le droit d'utiliser des map et hasmap vu comment
    l'énoncé est posé.
    Comment puis je savoir si j'ai le droit d'utiliser map et hashmap?

  7. #7
    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
    Ah ben, faut demander à la personne qui a fourni l'exercice.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Créer une méthode pour ajouter un nombre
    Par Kywwo dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 11/03/2020, 19h47
  2. Réponses: 7
    Dernier message: 29/05/2013, 17h23
  3. créer une dll pour utiliser l'ASIO
    Par ccinfonews dans le forum Bibliothèques, systèmes et outils
    Réponses: 2
    Dernier message: 22/09/2010, 11h50
  4. [Débutant] créer une méthode particuliere utilisable à volonté
    Par singleProject dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 10/06/2008, 08h16
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

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