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 de constructeurs "imbriqués"


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 23
    Points
    23
    Par défaut Problème de constructeurs "imbriqués"
    Bonjour,
    Je suis nouvelle sur le forum. Je suis en L3 d'informatique et je commence le java cette année.
    J'ai un soucis sur mon TP3, je suis bloquée et si quelqu'un pouvait m'aiguiller ce serait bien gentil.
    Donc voila l'énoncé de l'exercice:

    Decrivez l'interface Formule et ecrivez les classes Variable, Somme, Pro-
    duit et Neg de facon a obtenir le comportement suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Variable x = new Variable("x", 2.5);
    Variable y = new Variable("y", 4);
    Formule f = new Somme(x, new Produit(y, new Somme(x, y)));
    System.out.println(f.afficher()); // affiche "(x+(y*(x+y))"
    System.out.println(f.evaluer()); // affiche "28.5"
    x.set(5);
    System.out.println(f.evaluer()); // affiche "41.0"
    J'ai réussi à coder l'interfaces et les différentes classes, et quand je fais:
    Formule f = new Somme(x, y); ou bien Formule f=new Produit (x,y); ça marche mais je ne sais pas comment la formulation:
    Formule f = new Somme(x, new Produit(y, new Somme(x, y)));
    pourrait marcher (elle ne marche pas sur mon programme d'ailleurs).
    En effet un constructeur ne renvoyant rien je ne voies pas comment faire.
    Merci pour votre aide.
    Amicalement, Julie.

  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
    Un constructeur "renvoie" l'objet construit. Techniquement, la terminologie est inexacte : un constructeur n'est pas une méthode et seule une méthode peut renvoyer quelque chose. Le constructeur construit l'objet au lieu de juste le renvoyer. Mais un appel de constructeur, est une expression, dont le type est du type de l'objet construit.

    Bref : ton constructeur de Somme doit prendre deux Formule en paramètre. Comme une Somme et un Produit sont des Formule, tu peux faire une Somme de Somme ou de Produit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Salut thelvin.
    Merci pour ta réponse.
    Je comprends bien l'idée mais je n'arrive pas à l'appliquer.
    Par exemple j'ai essayé le constructeur
    public Somme (Variable a, Formule (Variable b, Formule (Variable a, Variable b)) {
    }
    Mais ça ne marche pas du tout. Comment faire?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    comme on a dit, t'as simplement besoin d'un constructeur qui prend deux formules.

    en gros, l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Formule f = new Somme(x, new Produit(y, new Somme(x, y)));
    est exactement le même que si tu avais fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Somme temp1 =  new Somme(x, y);
    Produit temp2 = new Produit(y,temp1);
    Formule f = new Somme(x,temp2);
    Bref, c'est exactement la même chose que quand tu emboite des appels de méthodes, sauf qu'ici on utilise des constructeur :p

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci à vous deux pour l'aide, ça marche!! Je ne visualisais pas très bien ce qu'est un constructeur voir même un objet en java, mais cette fois j'ai bien fait le lien entre un constructeur, les champs de la classe et les méthodes.
    Merci, à la prochaine

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

Discussions similaires

  1. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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