Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1539 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  HashSet et class

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

HashSet et class

n°2253974
neverdeadf​r
Posté le 23-03-2015 à 16:04:07  profilanswer
 

Bonjour les gens,
Depuis plusieurs jour je bug sur un exercice en programmation.
Alors voila j'ai 2 class présentez comme cela:
 
public class Voiture:
    public static final int VITESSE_MAX = 180;
    private final String marque;
    private final String modele;
    private final String immatriculation;
    private final int nbPassagersMax;
    private final int ptac;
    private final int pv;
    private int vitesseActuelle;
    private int nbKilometres;
    private int nbPassagers;
    private int poidsActuel;
    private EtatVoiture etat;
    private Personne personne;
    private HashSet<String> listePassagers;
 
public class Personne:
    private String nom;
    private String  prenom;
    private int poids;
    private int taille;
 
Et donc au sein de la class voiture j'ai créer une fonction qui permet de faire monter et descendre des personnes de la voiture. J'aimerai que le prénom de ses personne entre et sorte du HashSet j'ai donc fais :  
 
    public void monter(Personne personne){
        if(this.poidsActuel + personne.getPoids() > this.ptac)
            System.out.println("PTAC dépasser!" );
        else if(this.nbPassagers+1 > this.nbPassagersMax)
            System.out.println("Nombre de passagers max dépasser" );
        else if(this.etat == EtatVoiture.DEMARREE)
            System.out.println("La voiture n'est pas arretée!" );
        else{
            listePassagers.add(personne.getPrenom());
            this.poidsActuel+= personne.getPoids();
            this.nbPassagers+=1;
        }
             
    }
 
Et maintenant aucune personne n'apparait dans le HashSet et le nombre de passagers n'est pas incrémenter. Cependant le poidsActuel change...
Au secouurs ^^
Merci d'avance les gens.

mood
Publicité
Posté le 23-03-2015 à 16:04:07  profilanswer
 

n°2254036
Trajet
Posté le 24-03-2015 à 15:10:38  profilanswer
 

Bonjour.
 
Il est impossible que la variable poidsActuel soit modifiée et que la variable nbPassagers ne l'est pas, donc je suppose que tu ne dois jamais rentrer dans ton else. Ajoute un affichage avant et après les modifications du poids et du nombre de passager pour t'en assurer.
En ce qui concerne le HashSet, cet objet ne peut pas contenir de valeurs identiques (en gros si tu ajoutes deux fois le même prénom, la fonction add va renvoyer false), vérifie le code d'erreur renvoyé par la fonction add, ça te permettra de savoir si l'insertion a lieu ou non.
 

Code :
  1. if(listePassagers.add(personne.getPrenom())) {
  2.     System.out.println("l'insertion a réussi" );
  3. } else {
  4.     System.out.println("l'insertion a échoué" );
  5. }


 
Bon, le mieux c'est de faire ça avec des exceptions, mais ça me semble encore un peu tôt vu que tu as l'air de débuter en programmation.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  HashSet et class

 

Sujets relatifs
declaration de class imcomprehensible [résolu]applet et class
FatalErrorException: Error: Class 'Doctrine\Bundle\FixturesBundle\DocPHP Fatal error: Class 'DoctrineBundleFixturesBundle not found
Unable to load class "Twig_Environment"no class definition found exception
JAXB JSON extends classsauvegarder en session une action .Class Jquery
Problème de class introuvable à la générationClass => comment manipuler un array ?
Plus de sujets relatifs à : HashSet et class


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR