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 :

Comparer 2 double d'une classe


Sujet :

avec Java

  1. #1
    Invité
    Invité(e)
    Par défaut Comparer 2 double d'une classe
    Bonjour !
    J'aimerai savoir, pour comparer une classe qui gère des comptes en banque, comment je pourrais comparer l'argent de deux comptes différents.
    J'ai essayé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public void comparer ( Banque autreCompte ) {
            double comparer = this.getSolde() - autreCompte.getSolde();
            System.out.println("Vous avez " + comparer + "€ de différence");
        }
    Merci d'avance !
    Dernière modification par joel.drigo ; 06/10/2019 à 16h18.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quel est le problème au juste ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Quel est le problème au juste ?
    Je voudrais savoir comment on pouvait comparer deux objects car le code que j'ai essayé ne fonctionne pas et je trouve pas comment faire

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Zonetecde Voir le message
    le code que j'ai essayé ne fonctionne pas et je trouve pas comment faire
    C'est-à-dire ne fonctionne pas ? Même si ce n'est pas la meilleure façon de procéder (il vaut mieux isoler les parties traitements et affichages), ton code compile à priori (à moins que la méthode getSolde() n'existe pas, ou ne retourne pas de double, ou autre... vu que je n'ai qu'un extrait de code, je peux faire des milliers de conjectures ça ne servirait à rien), s'exécute et son résultat s'apparente à une certaine forme de comparaison (afficher la différence des soldes de deux comptes).

    Sans plus d'informations impossible de comprendre ce qui à ton sens ne fonctionne pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    C'est-à-dire ne fonctionne pas ? Même si ce n'est pas la meilleure façon de procéder (il vaut mieux isoler les parties traitements et affichages), ton code compile à priori (à moins que la méthode getSolde() n'existe pas, ou ne retourne pas de double, ou autre... vu que je n'ai qu'un extrait de code, je peux faire des milliers de conjectures ça ne servirait à rien), s'exécute et son résultat s'apparente à une certaine forme de comparaison (afficher la différence des soldes de deux comptes).

    Sans plus d'informations impossible de comprendre ce qui à ton sens ne fonctionne pas.
    Oui, je comprends.
    J'ai pas plus de code pour l'instant car je suis sur les ordis de mon ecole;
    En gros le code c'est :
    * crée une classe Banque avec paramètre solde
    * crée un (je sais plus le nom) getSolde()
    * crée un (idem) qui permet d'afficher la comparaison entre 2 objets de Banque
    Le code cité plus haut me donne 0 alors que les soldes sont de 250 et 230 pour les objets.

    Je vous mes le code complet ce soir si vous ne comprenait pas très bien maintenant

    Merci

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Zonetecde Voir le message
    Le code cité plus haut me donne 0 alors que les soldes sont de 250 et 230 pour les objets.
    On peut déjà commencer par le vérifier en ajoutant System.out.println("solde = " + this.getSolde() + " autre = " + autreCompte.getSolde()).
    Le problème est peut-être dans le paramètre autreCompte. Quel est le code de l'appel de la méthode comparer() ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    On peut déjà commencer par le vérifier en ajoutant System.out.println("solde = " + this.getSolde() + " autre = " + autreCompte.getSolde()).
    Le problème est peut-être dans le paramètre autreCompte. Quel est le code de l'appel de la méthode comparer() ?
    Ton code fonctionne pas
    Si je mes 150 de solde sur compte et 200 sur compte1, il m'affiche que sur les deux comptes il y a 200 soldes
    Voilà le code du fichier banque.java
    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
    package com.company;
     
    public class Banque {
     
        public static double solde;
     
     
        public Banque ( double sld ) { //Constructeur avec choix soldre
            solde = sld;
        }
        public Banque(){ //Constructeur par default
            solde = 0;
        }
     
     
        public void deposer ( int prix ) {
            solde += prix;
        }
     
        public void retirer ( int prix ) {
            solde -= prix;
        }
     
        public static double getSolde () {
            return solde;
        }
     
        public void afficherSolde () {
            System.out.println("Vous avez : " + solde + "€ sur votre compte." );
        }
     
        public void comparer ( Banque autreCompte ) {
            System.out.println("solde = " + this.getSolde() + " autre = " + autreCompte.getSolde());
        }
    }
    Et le code du fichier main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.company;
     
    public class Main {
     
        public static void main(String[] args) {
    	Banque compte = new Banque(200);
    	Banque compte2 = new Banque(125);
     
     
    	compte.comparer(compte2);
        }
    }
    Et ça me donne :
    Nom : Capture.PNG
Affichages : 341
Taille : 65,4 Ko

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mon code, comme tu dis, il faut l'ajouter à ta méthode compare() pour afficher les soldes dont tu dis que leur différence donne 0. Il fonctionne très bien et tu en donnes même la preuve dans le résultat qu'on voit à la fin de ton dernier message (que j'aurais préféré en texte plutôt qu'en image). C'est ce que je voulais savoir : la différence de 125 et de 125 donne bien 0. CQFD.

    Le problème est ailleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public static double solde;
    Une variable static est partagée entre toutes les instances de la classe. Avec solde en static, tous les comptes ont forcément le même solde. Supprime ce mot static.

    Il te faudra le supprimer aussi dans la déclaration de getSolde().

    Par ailleurs, c'est plutôt dangereux que la variable solde soit public. Cela veut dire que n'importe quelle classe peut la modifier n'importe quand et comment : tu ne pourras pas l'empêcher en ajoutant des contrôles dans les mutateurs et si tu veux pouvoir gérer des notions de limites de découvert, tu ne pourras pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merciii ça marche nickel !!!
    Dernière modification par joel.drigo ; 07/10/2019 à 21h49. Motif: suppression citation message précédent inutile

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/12/2015, 22h26
  2. Réponses: 4
    Dernier message: 07/08/2014, 00h13
  3. Réponses: 12
    Dernier message: 28/07/2010, 15h19
  4. Trier une liste en comparant des doubles
    Par babylone7 dans le forum Langage
    Réponses: 10
    Dernier message: 03/05/2007, 10h38
  5. Double propriété dans une classe
    Par Kiboumz dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/03/2007, 13h49

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