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 exercice class Personne


Sujet :

avec Java

  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 253
    Points
    253
    Par défaut Problème exercice class Personne
    Bonsoir ,

    J'essaie de faire l'exercice suivant :
    1) Créez une classe “Adresse” avec des VI pour la rue, le numero de maison, le code postal et la commune. Ajoutez des getters, setters et la methode “toString()”.
    2) Créez la classe “Personne” qui represente les personnes d’une entreprise. Chaque personne a un VI pour son adresse privée, son adresse professionelle, son numero d’identification (peut pas être modifie), et son responsable (une autre personne de l’entreprise). Un patron est son propre responsable.
    3)Ecrivez une methode statique qui prend en argument une Personne et imprime à l’écran la chaine des responsabilités depuis cette personne jusqu'à son patron.
    J'ai fait une partie mais arrivé à ma class personne , je me suis perdu !
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    public class Adresse {
     
                private String rue;
    			private int numero_maison;
    			private String code_postal; // on peut avoir un code postal avec des lettres dans certain pays
    			private String commune; 
     
                 public Adresse(String rue, int numero_maison,String code_postal,String commune) {
     
    			  this.rue=rue;
    			  this.numero_maison=numero_maison;
    			  this.code_postal=code_postal; 
    			  this.commune=commune; 
     
    			 }
     
    			 /*/////////////////////////////Les getters///////////////////////////*/
    			 public String getrue() {
     
    			 return this.rue;
    			 }
     
    			 public int getnumero_maison() {
     
    			 return this.numero_maison;
    			 }
     
    			 public String getcode_postal() {
     
    			 return this.code_postal;
    			 }
     
    			 public String getcommune() {
     
    			 return this.commune;
    			 }
     
                 /*/////////////////////////////Les setters///////////////////////////*/
    			  public void setrue(String rue) {
    			  this.rue;
    			 }
     
    			 public void setnumero_maison(int numero_maison) {
    			  this.numero_maison;
    			 }
     
    			 public void setcode_postal(String code_postal) {
    			  this.code_postal;
    			 }
     
    			 public void setcommune(String commune) {
    			  this.commune;
    			 }
     
    	         public String toString() {
    			 return "La rue est " + getrue() + '\n' + "Le numéro de maison est : " + getnumero_maison() + '\n' + " le code postal est : " + getcode_postal() + '\n' + " la commune est : " + getcommune();
    			 }
     
    }
    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
    public class Personne {
     
            private Adresse prive;
    		private Adresse professionnel;
            private final String numero_identification;
    		private Personne responsable;
     
           public Personne(Adresse prive,Adresse professionnel,Personne responsable) {
     
    	    this.prive=prive;
    	    this.professionnel=professionnel;
    	    this.responsable=responsable;
     
    	   }
     
     
    }
    Je ne comprends pas le responsable , si je crée un objet Personne dans mon main je devrai lui envoyer un responsable mais comment l'initialiser ? faudrait-il créer un autre constructeur ou faire autrement ?
    et je ne comprends pas aussi
    Ecrivez une methode statique qui prend en argument une Personne et imprime à l’écran la chaine des responsabilités depuis cette personne jusqu'à son patron
    Merci pour toute aide précieuse.

  2. #2
    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
    oui, un deuxième constructeur qui ne prend pas de patron.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    3)Ecrivez une methode statique qui prend en argument une Personne et imprime à l’écran la chaine des responsabilités depuis cette personne jusqu'à son patron.
    bha vu que tu a accès au patron de chaque personne tu boucle sur le patron de personne et tu l'affiche jusqu'a ce qu'une personne n'est plus de patron.

    un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public static void afficherPatron(Personne p)
    {
    Personne courant = p;
    Tant que courant a patron
    {
       afficher courant
       courant = courant.getPatron();
    }
    }

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 253
    Points
    253
    Par défaut
    Ce que je ne comprends pas est la personne responsable cela me fait penser à une liste chaînée.
    Avoir un type Objet le même que celui de la class ?

    Avec un autre constructeur comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // dans la Class Personne
    public Personne(Adresse prive,Adresse professionnel) {
     
    	    this.prive=prive;
    	    this.professionnel=professionnel;
     
    	   }
    et dans le main
    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
    public static void main(String[] args){
    Adresse pri=new Adresse("Bayern",13,6788,"Lille");
    Adresse pro=new Adresse("Nam",11,3433,"Bru");
    Personne p1=new Personne(pri,pro);
     
    Adresse pri2=new Adresse("Barn",12,6138,"Paris");
    Adresse pro2=new Adresse("Narmo",19,6000,"Anv");
    Personne p2=new Personne(pri2,pro2);
    afficherPatron(p1);
    }
     
    public static void afficherPatron(Personne p)
    {
    Personne courant = p;
    while (courant.getPatron != NULL ) {
     
       System.out.println(courant.toString());
       courant = courant.getPatron();
    }
    }
    Je ne vois pas si je suis dans le bon chemin.
    Comment passer plusieurs personnes à une même méthode ?
    J'avais pensé à une chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Personne(Personne p1,Personne p2) {
     
    	    this.p1=p1;
    	    this.p2=p2;
     }
    Merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    Ce que je ne comprends pas est la personne responsable cela me fait penser à une liste chaînée
    c'est un peu ca. tu a un attribut personne dans une personne:
    private Personne patron

    Et tu peux rajouter un constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // dans la Class Personne
    public Personne(Adresse prive,Adresse professionnel, Personne patron) {
     
    	    this.prive=prive;
    	    this.professionnel=professionnel;
                this.patron = patron
     
    	   }

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Un patron est son propre responsable.
    se traduit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Personne(Adresse prive,Adresse professionnel) {
    	    this.prive=prive;
    	    this.professionnel=professionnel;
                this.responsable = this;
    	   }
    Par contre c'est complétement c**
    Tu vas "galérer" pour la question 3 .... (il faut garder le précédent)

    La solution propre dans le monde réel : un patron n'a pas de patron :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Personne(Adresse prive,Adresse professionnel) {
    	    this.prive=prive;
    	    this.professionnel=professionnel;
                this.responsable = null;
    	   }

  7. #7
    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
    je vois pas en quoi c'est un problème, le critère deviens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    employe.getPatron()==employe

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    je vois pas en quoi c'est un problème,
    Effectivement ... je me suis un peu emballé dans mon propos

    C'est juste que conceptuellement pour moi un patron n'a pas de patron ...
    mais c'est plus que discutable ....

    Les 2 solutions marchent bien.

Discussions similaires

  1. Problème sur classe Transformer avec les <!--
    Par tykool dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 10h20
  2. Problème de classe
    Par DeusXL dans le forum DirectX
    Réponses: 15
    Dernier message: 04/12/2005, 14h37
  3. Problème de classe
    Par tidou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/10/2005, 17h49
  4. Réponses: 4
    Dernier message: 14/09/2005, 16h29
  5. [FLASH MX2004] Problème de classe
    Par JulPoWeR dans le forum Flash
    Réponses: 1
    Dernier message: 10/07/2005, 22h51

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