Bonjour,
Je suis débutant en java et je dois réaliser une classe Personne avec un constructeur qui vérifie si le sexe est 'f' ou 'm' et l'ajoute a la liste (representé par une instance de la classe Vector)et leve une exception si aucun des critères ne correspond.
J' ai un probleme avec ces 2 methodes:
voici le code de la classe Personne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public static Personne individuNommé(String nom) public static void afficheListe()
Quand je compile ma classe j'obtient :
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 import java.util.*; public class Personne{ String nom; String prenom; char sexe; Vector vect=new Vector();//création de la liste vide public Personne(String n,String p,char s){ nom=n; prenom=p; try{ if (s=='f'){ sexe='f'; vect.addElement(new Personne(n,p,s));//si s=='f' ajout de la personne dans la liste }else{ sexe='m'; vect.addElement(new Personne(n,p,s));//si s=='m' ajout de la personne dans la liste } } catch(ErreurSexe e) {//si ni 'f' ni 'm' levé de l'exeption System.out.println("Erreur de sexe\n"+e.getMessage()); } } public String toString(){ return "je suis "+nom+" "+prenom+" de sexe"+sexe+".\n"; } public String getNom(){ return nom; } public static Personne individuNomme(String nom){ for(int i=0;i<vect.size();i++){//Parcours de la liste try{ if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spécifié dans le paramètre se trouve dans la liste Personne p=vect.elementAt(i); return p;//renvoie l'instance du nom spécifié en paramètre } }catch(NomInconnu e){//lève l'exception si le nom ne s'y trouve pas System.out.println("Nom inconnue\n"+e.getMessage()); } } } public static void afficheListe(){ for(int i=0;i<vect.size();i++){//parcours de la liste System.out.println(vect.elementAt(i));//affichage des elements de la liste } } }Je suis vraiment perdu et je ne maitrise pas du tout le java alors tout aide est bienvenue.
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 % javac Personne.java Personne.java:34: non-static variable vect cannot be referenced from a static context for(int i=0;i<vect.size();i++){//Parcours de la liste ^ Personne.java:36: non-static variable vect cannot be referenced from a static context if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spésifié en paramètre se trouve dans la liste ^ Personne.java:36: cannot find symbol symbol : method getNom() location: class java.lang.Object if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spésifié en paramètre se trouve dans la liste ^ Personne.java:37: non-static variable vect cannot be referenced from a static context Personne p=vect.elementAt(i); ^ Personne.java:37: incompatible types found : java.lang.Object required: Personne Personne p=vect.elementAt(i); ^ Personne.java:47: non-static variable vect cannot be referenced from a static context for(int i=0;i<vect.size();i++){//parcours de la liste ^ Personne.java:48: non-static variable vect cannot be referenced from a static context System.out.println(vect.elementAt(i));//affichage des elements de la liste ^ Note: Personne.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 7 errors
Merci d'avance
Partager