canvin
Messages postés2Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention28 octobre 2003
-
27 oct. 2003 à 20:59
canvin
Messages postés2Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention28 octobre 2003
-
28 oct. 2003 à 01:14
Bonojour,
Voici mon problème. j'ai fait une classe tableaux avec un constructeur. :
public class Tableau{
private int tab[];
public Tableau(int _taille) {
tab = new int [_taille];
}
public void setElementAt(int a,int b) {
this.tab[a]=b;
}
Ensuite j'ai cree une classe personne et je cree une grille de 5 valeurs.
public class Joueur {
private String nom;
public int grille[];
public Joueur() {
int val;
System.out.println("Entrez votre nom");
nom=Clavier.lireChaine();
Tableau grille=new Tableau(5);
for (int j=1;j<5;j++) {
System.out.println("Entrez votre nombre compris entre 1 et 29");
val=Clavier.lireEntier();
if(val>0 && val<=29)
grille.setElementAt(j,val);
}
voila mon probleme : quand je fait mon main (dans la classe personne).
public static void main(String[] args) {
Joueur P1=new Joueur();
System.out.println("le tableau est " + P1.grille);
}
il me dit le tableau est null (le debugger m'indique apparment que grille [] nest jamais modifié ???). Comment faire pour bien remplir mon tableau, en gardant ces 2 classes. En vous remerciant. Canvin
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 27 oct. 2003 à 23:02
Salut
tu fais une pitite confusion entre différents types :
tu déclares gille comme étant un int[]
public int grille[];
ensuite, tu la déclares comme étant un Tableau
Tableau grille=new Tableau(5);
de plus, comme elle est déclarée 2 fois, ici avec P1.grille, tu appelles le public int[] qui lui est bien toujours à null
chtite modif :
public class Joueur {
private String nom;
public Tableau grille;
grille=new Tableau(5);//sans redéclarer la variable!!!!!
for (int j=1;j<5;j++) {
System.out.println("Entrez votre nombre compris entre 1 et 29");
val=Clavier.lireEntier();
if(val>0 && val<=29)
grille.setElementAt(j,val);
}
PS : je vois pas l'interêt de ta classe Tableau : en effet, comme ton int[] tab est private, tu y a accès juste en écriture avec la méthode setElementAt et puis c'est tout... pas de lecture, sauf dans la classe Tableau...
canvin
Messages postés2Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention28 octobre 2003 28 oct. 2003 à 01:14
Merci beaucoup...
Pour ma classe tableau ca fait partie d'une classe ou je dispose de tri et d'un getElemenAt, main et dautres méthodes. J'ai compris mon erreur, parce qu'en fait je focalisais sur la declaration de grille en tant int [] et non de type Tableaux.
Merci. Canvin (Débutant java).