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 :

Où est le mal dans mon code ?


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Où est le mal dans mon code ?
    Bonjour ,

    Je suis un apprenti en Java et j'aurais besoin d'un petit coup de main pour m'indiquer les fautes que j'ai commises ?

    Voilà le code de ma classe :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    import java.util.Scanner;
    import java.util.ArrayList; 
     
    public class Personne {
     
         ArrayList l = new ArrayList();
         Scanner scn = new Scanner(System.in);
         int nombre,i;
         private static int nbinstances;
         private String nom, prenom;
         private int age;
     
         public String getNom() {
              return nom;
         }
     
         public void setNom(String nom) {
              this.nom = nom;
         }
     
         public String getPrenom() {
              return prenom;
         }
     
         public void setPrenom(String prenom) {
              this.prenom = prenom;
         }
     
         public int getAge() {
              return age;
         }
     
         public void setAge(int age) {
            this.age = age;
         }
     
         public static int getNbinstances() {
              return nbinstances;
         }
     
         public Personne(String nom, String prenom, int age) {
              super();
              this.nom = nom;
              this.prenom = prenom;
              this.age = age;
        }
     
        public Personne() {
              super();
        }
     
        public  Ajouter(ArrayList l) { 
     
              System.out.println("Combien de personne vous voulez ajouter?");
              nombre = scn.nextInt();
              System.out.println("Saisir les informations de la personne");
     
              for (i = 0; i < nombre; i++) {
     
                   Personne p = new Personne();
                   System.out.println("Saisir le nom de la personne");
                   nom = scn.next();
                   System.out.println("Saisir le prénom de la personne");
                   prenom = scn.next();
                   System.out.println("Saisir l'age de la personne");
                   age = scn.nextInt();
                   l.add(p);
              }
         }
     
         public  void Afficher() { 
     
              for (i = 0; i < nombre; i++) {
     
                   System.out.println(l);
                   /*System.out.println("le nom de la personne est : " + nom);       
                   System.out.println("le prenom de la personne est : " + prenom);
                   System.out.println("L'age de la personne est : " + age);*/
              }
         }
    }
    le main est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class personel {
     
         /**
           * @param args
           */
         public static void main(String[] args) {
              //Personne p = new Personne();
              Ajouter();
              Afficher();
        }
    }
    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Vous pouvez utiliser Eclipse qui vous indiquera les erreurs ... s'il y en a
    Vous obtenez des erreurs de compilation ou d'exécution ? Quelle est la trace d'erreur ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Sinon, la méthode Ajouter() dans la classe Personne ne retourne rien dans sa signature : vous devriez indiquer "void", ensuite dans votre appel, vous ne l'appelez pas sur une instance, donc ça ne devrait pas fonctionner, et de même pour Afficher ...

    Dans la classe Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...
    public void Ajouter(ArrayList l) ...
    Dans votre appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class personel {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
     
              Personne p = new Personne();
              p.Ajouter();
              p.Afficher();
        }
    }
    Ensuite, il y aura peut être des erreurs d'exécution ...

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Salut, je sais pas si ton erreur vient de là ( sans trace ni rien on va essayer de deviner ..) mais :

    classe Personne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public  Ajouter(ArrayList l) { 
    ...
    	}
    dans ton main:
    dejà là si tu lui donne pas de parametre il va pas aimer :b

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    Alors alors !
    Je vois plusieurs erreurs !

    Dans ta classe "Personne", tu définis la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public  Ajouter(ArrayList l)
    ça va poser problème parce que la liste passée en paramètre (l) a le même nom que la liste présente dans ta classe (ça compile mais c'est pas conseillé)

    Bref, dans ta méthode ajouter, quand tu fais l.add, tu ajoute la personne à la liste passée en paramètre, et du coup ta variable de classe ne sera jamais remplie.
    Par contre dans ta méthode afficher quand tu fais

    tu accède à ta variable de classe, donc dans tous les cas, là, tu n'aura pas d'enregistrements à afficher.

    Ensuite, dans Personnel, tu appelles directement la méthode ajouter() (qui existe pas dans cette classe), et idem pour afficher.

    En plus tu appelles ajouter() sans passer de liste en paramètre, ça ne peut donc pas correspondre à la méthode ajouter (ArrayList) de ta classe Personne.

    Dans ta classe Personne, cette ArrayList est censé représenter quoi? je pense qu'elle n'a pas grand chose à faire là. c'est utile de mettre une liste de Personne dans la classe Personne si tu veux représenter une hiérarchie de personnes ( Chaque personne ayant la liste des personnes qu'elle commande par exemple), mais je sais pas si c'est ton cas ici.

    Si c'est pas le cas, je pense qu'il faudrait refaire ta structure plutôt comme ça

    Classe Personnel
    ArrayList personnes
    void ajouter () //qui vient remplir la liste personnes
    void afficher () //qui affiche la liste personnes

    Classe Personne
    age
    nom
    prénom
    Tous les accesseurs dont t'as besoin

    Je pense que c'est plus à un truc comme ça que tu pense, si c'est pas le cas, donne moi plus de détail sur ce que tu veux obtenir au final

    Dernier détail, pour les ArrayList (Et les listes en général) précise le type qui remplira ces liste, ça aide à la lisibilité et ça évite des erreurs de programmation derrière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList l = new ArrayList();
    devient alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Personne> l = new ArrayList<Personne>();
    à plus !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Utilise un compilateur ca fera gagner du temps pour tout le monde

Discussions similaires

  1. Où est l'erreur dans mon code
    Par Linuxawi dans le forum SQL
    Réponses: 2
    Dernier message: 07/05/2012, 18h27
  2. Où est l'erreur dans mon code ?
    Par fitarika dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 31/12/2009, 03h09
  3. [DOM] quel est l'erreur dans mon code
    Par une_tite_question dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/08/2008, 11h20
  4. Qu'est ce qu'il y a de mal dans mon code?
    Par pennylanesworld dans le forum Flash
    Réponses: 2
    Dernier message: 23/10/2006, 12h22
  5. Réponses: 5
    Dernier message: 14/05/2006, 22h41

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