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

Langage Java Discussion :

exercice en JAVA


Sujet :

Langage Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut exercice en JAVA
    bonjour à tous;
    j'ai trouvé un exercice qui traite les notions d'héritage et polymorphisme.
    j'ai rencontré quelques difficultés . Au dessus l'exercice et juste à après la solution que j'ai fait:
    On souhaite disposer d’un ensemble de classes permettant de manipuler des formes tridimensionnelles. Pour cela on propose la hiérarchie de classes. Les contraintes sur ces classes sont les suivantes :
    - La classe Forme ne pourra pas être instanciée.
    - La classe Cube ne pourra pas être dérivée.
    - Chaque forme possède un attribut de type Point3D qui représente son centre de gravité et un attribut réel représentant sa densité.
    - Un objet de type Boule est caractérisé par son centre de gravité, sa densité et son rayon.
    - Un objet de type CylindrePlein est caractérisé par son centre de gravité, sa densité, une hauteur et un rayon.
    - Un objet de type Brique est caractérisé par son centre de gravité, sa densité, une largeur, une longueur et une hauteur.
    - Un objet de type Cube est une brique pour laquelle largeur = longueur = hauteur.
    Les formes disposent d’une méthode bouger prenant comme paramètres trois réels représentant les composantes x, y et z d’un vecteur de translation et des méthodes calculerSurface, calculerVolume et calculerPoids calculant respectivement la surface, le volume et le poids (volume x densité) de la forme.
    De plus, toute forme est capable de donner sa représentation sous la forme d’une chaîne de caractères contenant le nom de sa classe et la description textuelle de chacun de ses attributs.
    questions:
    1-Ecrivez le code Java des classes Forme, Brique et Cube.
    On ajoute à la classe Forme un attribut listeDeFormes de type Vector qui contiendra la liste des références de toutes les formes instanciées
    Précisez la déclaration de cet attribut. Que faut-il modifier dans le code de la question
    2-pour que cet attribut contienne effectivement la liste des références à toutes les formes instanciées ?
    3-Ecrivez le code de la fonction poidsTotal qui permet de calculer et d’afficher sur la sortie standard (System.out) le poids total des formes contenues dans la liste listeDeFormes. Précisez dans quelle classe se place cette méthode.
    mes réponses: j'ai pas fait tout l'exercice
    la classe Point3D:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Point3D {
     protected  double x,y,z;
     
        public Point3D(double x, double y, double z){
    	this.x=x;this.y=y;this.z=z;
        }
        public void bouger(double dx, double dy, double dz){
    	x=x+dx; y=y+dy; z=z+dz;
        }
     
        public String toString(){
    	return "Point3D (x ="+x+" , y ="+y+", z ="+z+")\n";
        }
    }
    la classe Forme:
    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
    abstract class Forme {
        Point3D centre;
        double d;
         public Forme(Point3D c, double r){
    	centre=c;
    	d=r;
        }
     
        public void bouger(double v1, double v2, double v3){
    	centre.bouger(v1,v2,v3);
        }
     
        abstract public double calculerSurface();
        abstract public double calculerVolume();
     
        public double calculerPoids(){
    	return d*calculerSurface();
        }
     
    }
    la classe Brique:
    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 Brique extends Forme{
        protected double largeur,longueur, hauteur;
     
        public Brique(Point3D p, double d, double l, double L, double h){
    	super(p,d);
    	largeur=l;
    	longueur=L;
    	hauteur=h;
        }
     
        public double calculerSurface(){
    	return 2*(largeur*longueur + largeur*hauteur + longueur*hauteur);
        }
     
        public double calculerVolume(){
    	return largeur*hauteur*longueur;
        }
     
    }
    la classe Cube:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    final class Cube extends Brique{
        public Cube(Point3D p, double d, double l){
    	super(p,d,l,l,l);
        }
    }
    quelqu'un pourrait me guider pour les autres questions.
    merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Question 1
    C'est presque bien, sauf que :
    • la translation ne se fait pas tout à fait comme ça (Mais ce n'est qu'un problème mathématique)
    • le calcul du poids n'est pas correct (Relis l'énoncé ;-))


    Question 1 (bis)
    On te demande d'ajouter un attribut qui contiendra toutes les instances de Forme.

    Question 2
    On te demande d'alimenter ce nouvel attribut

    Question 3
    On te demande d'ajouter une méthode (à toi de trouver la bonne classe) qui permettre d'écrire sur la sortie standard (System.out), le poids de l'ensemble des Formes instanciées.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Question 1
    C'est presque bien, sauf que :
    • la translation ne se fait pas tout à fait comme ça (Mais ce n'est qu'un problème mathématique)
    • le calcul du poids n'est pas correct (Relis l'énoncé ;-))


    Question 1 (bis)
    On te demande d'ajouter un attribut qui contiendra toutes les instances de Forme.

    Question 2
    On te demande d'alimenter ce nouvel attribut

    Question 3
    On te demande d'ajouter une méthode (à toi de trouver la bonne classe) qui permettre d'écrire sur la sortie standard (System.out), le poids de l'ensemble des Formes instanciées.
    pour la question 1:
    on va ajouter un attribut de type static???

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    A ton avis ?

    Qu'est-ce qui se passe s'il est static ?
    Qu'est-ce qui se passe s'il ne l'est pas ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut
    Citation Envoyé par Nemek Voir le message
    A ton avis ?

    Qu'est-ce qui se passe s'il est static ?
    Qu'est-ce qui se passe s'il ne l'est pas ?
    ce qui demandé c'est : un attribut propre à la classe qui représente le numéro maximale des formes crées en lui donnant une valeur initiale est égale à 0,donc un attribut de type static qui conserve la dernière valeur: à chaque fois lorsqu'on crée un objet on incrémente l'attribut.

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Citation Envoyé par achrafkaran Voir le message
    ce qui demandé c'est : un attribut propre à la classe qui représente le numéro maximale des formes crées en lui donnant une valeur initiale est égale à 0,donc un attribut de type static qui conserve la dernière valeur: à chaque fois lorsqu'on crée un objet on incrémente l'attribut.
    Euh j'ai pas vu cette partie dans l'énoncé...

    Très bon raisonnement !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Exercice sur Java
    Par romain1 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 16/06/2008, 19h53
  2. Livre d'exercice pour Java Oo
    Par hardokin dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 02/04/2008, 15h35

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