psyckan
Messages postés135Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention 8 mai 2010
-
6 mai 2010 à 13:49
psyckan
Messages postés135Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention 8 mai 2010
-
8 mai 2010 à 07:17
Bonjour,
J'obtiens cette erreur lors de l'exécution de mon programme et je ne comprend pas pourquoi :
Exception in thread "main" java.lang.NullPointerException
at JeuCartes.creerJeu(JeuCartes.java:11)
at JeuCartesTest.main(JeuCartesTest.java:6)
Voici le code de la classe JeuCartes :
public class JeuCartes {
Carte [] JeuCartes;
public void creerJeu(int nombreCarte){
JeuCartes = new Carte[nombreCarte];
int couleur=1;
int valeurCarteInseree = 13;
for(int i=0;i<nombreCarte;i++){
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
couleur++;
if(couleur==4){
couleur=1;
valeurCarteInseree--;
}
}
}
}
Voici le code de la classe JeuCartesTest :
public class JeuCartesTest {
public static void main(String[] args) {
JeuCartes j1 = new JeuCartes();
j1.creerJeu(32); // ERREUR
}
}
Et le code de la classe Carte :
public class Carte {
int rang,couleur;
static String [] tabCouleur = {"CARREAU","TREFLE","COEUR","PIQUE"};
static String [] tabRang = {"AS","DEUX","TROIS","QUATRE","CINQ","SIX","SEPT","HUIT","NEUF","DIX","VALET","DAME","ROI"};
tototitanium
Messages postés13Date d'inscriptionsamedi 28 mars 2009StatutMembreDernière intervention 8 mai 20101 6 mai 2010 à 22:59
Bonjour,
Tu instancie ta classe (JeuCartes) alors qu'elle ne possède pas de constructeur...je me suis pas attardé sur ton code mais je pense que le problème viens simplement de là !
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 7 mai 2010 à 14:56
Salut,
tototitanium, c'est faux, si aucun constructeur n'est renseigné, c'est le constructeur par défaut qui est pris, dans notre cas présent, ça serait :
public JeuCartes() {
}
C'est tout.
Ensuite, tu as créé un tableau de Carte... ok, mais les objets qui tu as à l'intérieur, il te faut les instancier aussi !!!
for(int i= 0;i<nombreCarte;i++){
JeuCartes[i] = new Carte();
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
couleur++;
if(couleur==4){
couleur=1;
valeurCarteInseree--;
}
}
tototitanium
Messages postés13Date d'inscriptionsamedi 28 mars 2009StatutMembreDernière intervention 8 mai 20101 7 mai 2010 à 16:20
Salut dvoraky,
Donc tu veux me dire que même si aucun constructeur n'est présent sa passe... J'ai déjà sur-définit des constructeurs mais de la à ne pas écrire celui par défaut j'aurais jamais cru ! Je dois vraiment avoir besoin de revoir mes bases.