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 :

Constructeurs et fonctions


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut Constructeurs et fonctions
    Salut,
    je débute dans la création de classe et j'ai un probleme sur une fonction,
    le 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
    class MainFruit {
     
       static void affiche(Fruit f) {
          System.out.println("Ce fruit est un(e) "+f.nom+" et pèse "+f.p+" gramme(s).");
       }
     
       static Fruit ajout(Fruit f1, Fruit f2) { 
          Fruit f12.nom = f1.nom+f2.nom;
          Fruit f12.p = f1.p + f2.p;
          return f12;
       }
     
       public static void main(String[] args) {
          Fruit f = new Fruit();
          affiche(f);
          Fruit citron = new Fruit("citron",100);
          affiche(citron);
          System.out.print(ajout(f1,f2));
       }
    }
    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
    class Fruit {
     
       static String nom;
       static double p;
     
       public Fruit() {
          nom = "banane";
          p = 500;
       }
     
       public Fruit(String nom, double poids) {
          this.nom = nom;
          this.p = poids;
     
       }   
    }
    Dans la fonction ajout plus précisément, on me demande de retourner un fruit qui aura ces caractéristiques : son poids = somme des poids des deux fruits et
    son nom = concaténation des deux noms séparés par "+".

    Il me dit qu'il y'a une erreur et je n'arrive pas avoir où, merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Là tu dit à java, je définis un variable, appelée f12.nom de type Fruit. C'est déjà une erreur, car on ne peut pas mettre de point dans le nom d'une variable.
    Ensuite tu dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f12.nom = f1.nom+f2.nom;
    C'est embêtant, tu viens de dire que c'est un Fruit, mais tu tente de lui attribuer une String....
    Ce qu'il te manque dans ta méthode, c'est la déclaration d'un Fruit, appelé f12. Et ça tu sais déjà comment le faire puisque tu a fait le même dans le main (avec la variable appelée citron)

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut
    ok c 'est vrai que j'ai oublié la déclaration mais comment je fais apres pour retourner un fruit alros que j'ai uen somme de fruits , ca me parait bizarre

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Relis bien l'énoncé :

    Dans la fonction ajout plus précisément, on me demande de retourner un fruit qui aura ces caractéristiques : son poids = somme des poids des deux fruits et
    son nom = concaténation des deux noms séparés par "+".
    Il suffit de traduire en code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public Fruit ajout(Fruit fruit1, Fruit fruit2) {
     
          String nomDuNouveauFruit = ...;
          double poidsDuNouveauFruit = ...;
     
          Fruit nouveauFruit = new Fruit( nomDuNouveauFruit, poidsDuNouveauFruit); 
     
          return nouveauFruit;
     
    }
    Tu n'as plus qu'a remplacer les ... par le bon code, qui se déduit très facilement de l'énoncé.
    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
    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
    Citation Envoyé par tamerla Voir le message
    mais comment je fais apres pour retourner un fruit alros que j'ai uen somme de fruits , ca me parait bizarre
    Ah oui non mais ajouter des bananes et des citrons, pour produire des bananecitrons, je confirme c'est bizarre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    C'est sûr que le domaine d'application de l'exercice est un peu étrange. Attention, toutefois, d'après l'énoncé, ajouter un "banane" et un "citron", doit donner un "banane+citron".
    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
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut
    ok merci de vos réponses j'ai compris, ca a tendance a m'embrouiller assez vite ce genre d'exos

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut
    J'ai une petite question en plus finalement, pourquoi j'obtiens ceci : "Ce fruit est un(e) citron+citron et pèse 200.0 gramme(s)." avec ce 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
    class MainFruit {
     
       static void affiche(Fruit f) {
          System.out.println("Ce fruit est un(e) "+f.nom+" et pèse "+f.p+" gramme(s).");
       }
     
       static Fruit ajout(Fruit f1, Fruit f2) { 
          double f12poids = f1.p + f2.p;
          String f12nom = f1.nom+"+"+f2.nom;
          Fruit f12 = new Fruit(f12nom, f12poids);
          return f12;
       }
     
       public static void main(String[] args) {
          Fruit melon = new Fruit("melon",400);
          Fruit citron = new Fruit("citron",100);
          affiche(ajout(citron,melon));
       }
    }
    merci

  9. #9
    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
    Ah oui, tiens.

    C'est parce que les membres p et nom de ta classe Fruit sont static.
    Il faut que chaque objet Fruit ait le sien, donc il faut qu'ils soient pas static.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut
    Ah d'accord c'est donc ca le static, merci beaucoup

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

Discussions similaires

  1. [Débutant] Fonction Constructeur
    Par popy67 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/09/2008, 21h11
  2. Réponses: 3
    Dernier message: 22/08/2008, 02h07
  3. Réponses: 1
    Dernier message: 21/02/2008, 09h55
  4. [Prototype] Fonction constructeur
    Par popy67 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 01/02/2008, 12h31
  5. Réponses: 3
    Dernier message: 06/11/2005, 18h02

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