Mon programme ne marche pas
Résolu/Fermé
LearnDeep
Messages postés
67
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
21 août 2021
-
Modifié le 10 déc. 2018 à 22:45
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - 11 déc. 2018 à 20:06
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - 11 déc. 2018 à 20:06
A voir également:
- Mon programme ne marche pas
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
10 déc. 2018 à 23:09
10 déc. 2018 à 23:09
Bonjour,
"Mon programme ne marche pas" c'est vague... mais dans la mesure où tu as une exception, il aurait été plus pertinent de l'indiquer, c'est quand même là dessus qu'il faut partir :
Donc
Dans le constructeur tu fais
De toute façon le constructeur ne sert à rien, parce que la méthode
Donc c'est le tableau
Remarque : même si
Un début pour ta classe :
"Mon programme ne marche pas" c'est vague... mais dans la mesure où tu as une exception, il aurait été plus pertinent de l'indiquer, c'est quand même là dessus qu'il faut partir :
Exception in thread "main" java.lang.NullPointerException at pack8.BanditMachot.joue(BanditMachot.java:27) at pack8.TestBanditMachot.main(TestBanditMachot.java:10)
Donc
BanditMachot.java:27c'est
elements[0]=tab[0].get();et le
NullPointerExceptionvient du fait que
tabvaut
null, cela vient de plusieurs maladresses au début de ta classe :
package pack8; public class BanditMachot { static Roue [] tab; static int gain; public BanditMachot() { Roue [] tab =new Roue [4]; } public static int joue() {
Dans le constructeur tu fais
Roue [] tab =new Roue [4];c'est à dire que tu déclares une variable locale au constructeur qui s'appelle
tabet qui est correctement initialisée, mais qui ne sera utilisée nul part ailleurs dans le programme puisqu'elle est locale...
De toute façon le constructeur ne sert à rien, parce que la méthode
joue()est
static.
Donc c'est le tableau
static Roue [] tabqui va être considéré, or celui-ci n'est pas initialisé, il vaut donc
null, d'où le
NullPointerException.
Remarque : même si
tabavait été initialisé avec
new Roue [4];comme tu as essayé de faire, c'est seulement le tableau qui aurait une valeur, mais chacune de ses cases vaudrait
null, donc
tab[0].get();aurait provoqué une autre
NullPointerExceptionpuisque
tab[0]serait
nullaussi.
Un début pour ta classe :
package pack8; public class BanditMachot { private final Roue[] roues; private int gain; public BanditMachot(int nbRoues) { roues = new Roue[nbRoues]; for (int i = 0; i < nbRoues; i++) { roues[i] = new Roue(); } } public int joue() {
LearnDeep
Messages postés
67
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
21 août 2021
Modifié le 11 déc. 2018 à 14:41
Modifié le 11 déc. 2018 à 14:41
Merci beaucoup Monsieur
mais je pense que je dois metttre ceci
public BanditMachot(int nbRoues) {
roues = new Roue[nbRoues];
for (int i = 0; i < nbRoues; i++) {
roues[i] = new Roue().lance().get();
}
}
est ce que correct?? pourque chacque roue initialise avec le nombre aleatoire de la classe Roue membre aleatoire?
mais je pense que je dois metttre ceci
public BanditMachot(int nbRoues) {
roues = new Roue[nbRoues];
for (int i = 0; i < nbRoues; i++) {
roues[i] = new Roue().lance().get();
}
}
est ce que correct?? pourque chacque roue initialise avec le nombre aleatoire de la classe Roue membre aleatoire?
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 déc. 2018 à 17:51
11 déc. 2018 à 17:51
Tu ne peux pas faire
De plus l'exercice t'impose d'avoir un tableau de 4 roues, il ne faut donc pas lancer 4 fois la même roue.
roues[i] = new Roue().lance().get();il faut respecter les types de données.
De plus l'exercice t'impose d'avoir un tableau de 4 roues, il ne faut donc pas lancer 4 fois la même roue.
LearnDeep
Messages postés
67
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
21 août 2021
Modifié le 11 déc. 2018 à 20:08
Modifié le 11 déc. 2018 à 20:08
comment initialiser les 4 roues chacune d'autre de la variable membre aléatoire?
Merci ))
chaque roue doit être initialise par un nombre aléatoire , je ne sais pas comment le faire ...
Merci ))
chaque roue doit être initialise par un nombre aléatoire , je ne sais pas comment le faire ...