Problème lors de la compilation

Problème lors de la compilation - Java - Programmation

Marsh Posté le 30-03-2006 à 14:53:20    

Bonjour,
 
Comme j'ai une connaissance de base en java, je n'arrive pas à comprendre les erreurs de compilation.
J'essaye de faire un exercice qui fait la lecture d'un fichier texte comme ceci:
 

Code :
  1. import java.io.*;
  2. import java.util.*;
  3. class Personnes
  4. {
  5. String nom, prenom;
  6. Personnes(String nom, String prenom)
  7. {
  8.  this.nom  = nom;
  9.  this.prenom = prenom;
  10. }
  11. static Personnes traiter(String ligne, int numLigne)
  12. {
  13.  String nom, prenom;
  14.  StringTokenizer st = new StringTokenizer(ligne);
  15.  nom = st.nextToken();
  16.  prenom = st.nextToken();
  17.    return new Personnes("EP"+numLigne, nom, prenom);
  18. }
  19.  public String toString()
  20. {
  21.  // dans une chaîne  \n représente un passage à ligne
  22.  return "\nLa personne s'appele"+nom+" "+prenom;
  23. }
  24. }


 
Il n'est pas encore fini, il y a des choses qui manquent mais ça me fait déjà des erreurs comme :
 
cannot find symbol constructor Personnes[java.lang.String,java.lang.String,java.lang.String]
à la ligne 22.
 
Merci beaucoup

Reply

Marsh Posté le 30-03-2006 à 14:53:20   

Reply

Marsh Posté le 30-03-2006 à 14:58:51    

A la ligne 22 tu appelles le constructeur Personnes (soit dit en passant, je trouve que le nom est mal trouvé, il semblerait que la classe concerne une seule personne, pas des... enfin, passons) avec trois paramètres de type String (dont le premier "EP"+numLigne que je comprends pas tout à fait [:canaille]) alors que le seul constructeur non hérité de la classe objet que tu as créé est Personnes(String nom, String prenom).
Il sait pas où aller chercher ce constructeur, tout simplement :spamafote:
 
edit : Ah, j'ai pigé pour "EP", c'est un codage qui a dû foirer au copier-coller.

Message cité 1 fois
Message édité par Mario_ le 30-03-2006 à 14:59:44

---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
Reply

Marsh Posté le 30-03-2006 à 15:01:28    

grafvon a écrit :

cannot find symbol constructor Personnes[java.lang.String,java.lang.String,java.lang.String]
à la ligne 22.
 
Merci beaucoup


Tu lui demandes un constructeur prenant 3 paramètres de type String, le seul et unique constructeur que tu ais créé n'en prend que deux.
(franchement, suffit de lire le message d'erreur quoi [:pingouino])

Mario_ a écrit :

edit : Ah, j'ai pigé pour "EP", c'est un codage qui a dû foirer au copier-coller.


Say un jocebug en fait [:aloy]


Message édité par masklinn le 30-03-2006 à 15:02:00

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-03-2006 à 15:02:49    

Tout s'explique [:romf]


---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
Reply

Marsh Posté le 30-03-2006 à 15:54:25    

ça marche merci beaucoup

Reply

Marsh Posté le 30-03-2006 à 17:11:28    

puisque j'essaye de m'entrainer, j'essaye de faire des test d'affichage sauf que là je fais un petit calcul de somme de salaire dans la procédure tout en bas mais il n'y a rien qui s'affiche.
 

Code :
  1. import java.io.*;
  2. import java.util.*;
  3. class Personnes
  4. {
  5. String nom, prenom,adresse;
  6. int salaire,telephone;
  7. Personnes(String prenom, String nom,String adresse,int salaire,int telephone)
  8. {
  9.  this.nom  = nom;
  10.  this.prenom = prenom;
  11.  this.adresse = adresse;
  12.  this.salaire = salaire;
  13.  this.telephone = telephone;
  14. }
  15. static Personnes traiter(String ligne, int numLigne)
  16. {
  17.  String nom, prenom,adresse;
  18.  int salaire,telephone;
  19.  StringTokenizer st = new StringTokenizer(ligne);
  20.  prenom = st.nextToken();
  21.  nom = st.nextToken();
  22.  adresse = st.nextToken();
  23.  salaire = Integer.parseInt(st.nextToken());
  24.  telephone = Integer.parseInt(st.nextToken());
  25.    return new Personnes(prenom,nom,adresse,salaire,telephone);
  26. }
  27.  public String toString()
  28. {
  29.  // dans une chaîne  \n représente un passage à ligne
  30.  return "\nLa personne s'appele "+prenom+" "+nom+" et habite "+adresse+
  31.  ".\n Il a un salaire de "+salaire+" CHF et son n° de tel est : "+telephone;
  32. }
  33. }
  34. class CreationListePersonnes
  35. {
  36. static final int NB_PERSONNES= 8;
  37. static Personnes[] créationListePersonnes(String nomFichier)
  38. {
  39.  Personnes[] liste = new Personnes[NB_PERSONNES];
  40.  try
  41.  {
  42.   String ligne;
  43.   int numLigne = 1;
  44.   BufferedReader fichier = new BufferedReader(new FileReader(nomFichier));
  45.   ligne = fichier.readLine();
  46.   while ( ligne != null )
  47.   {
  48.    liste[numLigne-1] = Personnes.traiter(ligne, numLigne);
  49.    numLigne++;
  50.    ligne = fichier.readLine();
  51.   }
  52.  }
  53.  catch (IOException ioe)
  54.  {
  55.   System.out.println(ioe);
  56.  }
  57.  return liste;
  58. }
  59. }
  60. class TestCreationListePersonnes
  61. {
  62. public static void main(String[] args)
  63. {
  64.  System.out.println("Liste des personnes" );
  65.  Personnes[] listePersonnes = CreationListePersonnes.créationListePersonnes("LiistePersonnes.txt" );
  66.  for ( int i = 0; i < listePersonnes .length; i++ )
  67.   System.out.println(listePersonnes [i]);
  68.    System.out.println();
  69. }
  70. static void SommeSalaire(Personnes[] listePersonnes)
  71. {
  72.  int sommesal;
  73.  sommesal = 0;
  74.  for (int i = 0; i < listePersonnes .length; i++)
  75.     sommesal = sommesal + listePersonnes[i].salaire;
  76.     System.out.println(sommesal);
  77.     System.out.println();
  78. }
  79. }


 
Merci beaucoup

Reply

Marsh Posté le 30-03-2006 à 17:14:26    

Normal, pour l'afficher, faut que tu passes dedans :d
Elle est pas appelée depuis le main :o


---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
Reply

Marsh Posté le 30-03-2006 à 18:21:56    

Je l'ai appelé depuis le main mais ça na pas marché. Je vous envois comment j'ai fais. J'envois juste apartir de la class de test
 

Code :
  1. class TestCreationListePersonnes
  2. {
  3. public static void main(String[] args)
  4. {
  5.  System.out.println("Liste des personnes" );
  6.  Personnes[] listePersonnes = CreationListePersonnes.créationListePersonnes("LiistePersonnes.txt" );
  7.  for ( int i = 0; i < listePersonnes .length; i++ )
  8.   System.out.println(listePersonnes [i]);
  9.    System.out.println();
  10.    SommeSalaire(sommesal);
  11. }
  12. static void SommeSalaire(sommesal)
  13. {
  14.  int sommesal;
  15.  sommesal = 0;
  16.  for (int i = 0; i < listePersonnes .length; i++)
  17.     sommesal = sommesal + listePersonnes[i].salaire;
  18.     return sommesal;
  19. }
  20. }


 
ça me fait deux erreurs :
 
<identifier> expected à la ligne 14
')' expected  à la ligne 22
 
Merci beaucoup


Message édité par grafvon le 30-03-2006 à 18:22:48
Reply

Marsh Posté le 30-03-2006 à 18:24:10    

Ben tu les résous [:klem3i1]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-03-2006 à 20:45:43    

Ca fait pas d'erreur à la ligne 11 [:opus dei]
 
[:psychokwak]
Sérieux, quel est ton niveau en Java et en prog ? Parce que là il y a des soucis au niveau de base quand même :/

Reply

Marsh Posté le 30-03-2006 à 20:45:43   

Reply

Marsh Posté le 30-03-2006 à 20:54:52    

j'ai résolu le problème, c'est bon. Mon niveau en prog je dirai qu'il est bas car j'ai jamais fais de la programmation objet, j'ai toujours fais de la programmation normale qui n'est pas objet. C'est pour ça que j'ai de la peine en java.

Reply

Marsh Posté le 30-03-2006 à 21:51:10    

les problèmes que tu as ne vienne pas que tu n'a jamais fait de POO, c'est que tout simplement tu n'as aucune logique et que tu fabriques des programmes en bricolant sans savoir ce que tu fais. Maitrise d'abord des langages comme le C a fond et après tu pourras te taper le JAVA et le .NET qui sont purement que de l'orienté objet.

Reply

Marsh Posté le 30-03-2006 à 22:40:54    

moi23372 a écrit :

Maitrise d'abord des langages comme le C a fond et après tu pourras te taper le JAVA et le .NET qui sont purement que de l'orienté objet.


Lol [:sinorz-]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 31-03-2006 à 00:07:15    

moi23372 a écrit :

les problèmes que tu as ne vienne pas que tu n'a jamais fait de POO, c'est que tout simplement tu n'as aucune logique et que tu fabriques des programmes en bricolant sans savoir ce que tu fais. Maitrise d'abord des langages comme le C a fond et après tu pourras te taper le JAVA et le .NET qui sont purement que de l'orienté objet.


 
Ou : Apprenez a vous deplacer a dos d'ane avant d'aller en BMW, c'est le chemin logique de l'evolution [:petrus75]


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 31-03-2006 à 00:22:04    

esox_ch a écrit :

Ou : Apprenez a vous deplacer a dos d'ane avant d'aller en BMW, c'est le chemin logique de l'evolution [:petrus75]


Ouais enfin là c'est pas un âne, c'est plutôt un tigre du bengale qui tente de se baffrer tes joyeuses dès que tu fais pas gaffe [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 05-04-2006 à 06:59:24    


Appelle ta classe Personne  sans s car cela concerne 1 et 1 seule personne.  Mario_ te l'a dit !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed