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 :

problème avec un boolean


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2019
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2019
    Messages : 49
    Par défaut problème avec un boolean
    bonjour voici mon code
    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
    package fr.piter.heritage;
     
    public class Moto extends Vehicule {
    	//attributs
    		private boolean sidecar = false;
     
    		//constructeur
    		public Moto(String nom, double vitesse, int poids, int niveauCarburant) {
    			super(nom, vitesse, poids, niveauCarburant);
     
     
    		}
    		public Moto(String nom, double vitesse, int poids, int niveauCarburant,boolean  sideCar) {
    			super(nom, vitesse, poids, niveauCarburant);
    			this.sidecar = sidecar;
    		}
     
     
     
     
    		@Override
    		public String toString() {
    			if (sidecar = true) {
    				return super.toString()+" , moto avec sidecar";
    			}
    			return super.toString()+" moto";	
    		}
     
    }
    méthode main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Moto m1 = new Moto("Honda", 200.0, 250, 15, true);
            Moto m2 = new Moto("Kawasaki", 280.0, 180, 10);
    resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Honda -> vitesse Max = 200.0 km/h, poids = 250 kg , moto avec sidecar
     
    Kawasaki -> vitesse Max = 280.0 km/h, poids = 180 kg , moto avec sidecar
    Pourquoi quand je crèe un objet moto sans sidecar j ai toujours" moto avec sidecar" ,pourtant par défaut sidecar est bien initialisé à false ? alors dans ma méthode toString de devrais-je pas avoir la réponse sidecar= "false" donc (return super.toString()+"moto" ?
    j ai essayé d'écrire dans le premier constructeur à la fin this.sidecar = false pour être sur que sidecar est bien initialisé à false mais rien n'y fait ?
    merci pour vos réponses,

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Bonjour, attention que l'on compare deux boolean avec == et non =
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par cpiter Voir le message
    if (sidecar = true) {
    [...]
    j ai essayé d'écrire dans le premier constructeur à la fin this.sidecar = false pour être sur que sidecar est bien initialisé à false mais rien n'y fait ?
    Donc, tu précises que tu écris this.sidecar = false pour affecter false à sidecar.
    Tu peux voir que "if (sidecar = true)" comporte "sidecar = true". ça affecte true à sidecar. Et le résultat de "(sidecar = true)" est donc toujours true.

    Le = est un opérateur d'affectation.
    Le == est l'opérateur de comparaison (égalité) pour les valeurs primitives.

    Il est d'ailleurs recommandé d'écrire plutôt "if (false == sidecar)" car en cas de faute de frappe "if (false = sidecar)" sera refusé par le compilateur.

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2019
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2019
    Messages : 49
    Par défaut
    merci à tous les 2 ,effectivement j 'avait pas vu le = au lieu du == car éclipse ne m'a pas mis d' erreur donc je n ai pas prêté attention désolé...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bon, par ailleurs,

    "est-ce qu'il est vrai que ta moto a un side-car ?"

    C'est vrai que tout le monde dit ça...

    (non, on dit, "est-ce que ta moto a un side-car ?")
    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. Problème selectOneItem avec un boolean
    Par toutoune60 dans le forum JSF
    Réponses: 28
    Dernier message: 05/11/2007, 22h23
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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