NullPointerException, finde fehler nicht :(

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NullPointerException, finde fehler nicht :(

    hallo zusammen, dieses semester habe ich angefangen mit Bluej zu programmieren. zu hilfe nehme ich parallel eclipse...ich habe nun ein problem mit meinem programm.

    der quelcode scheint soweit in ordnung zu sein leider bekomme ich eine fehler meldung "java.lang.NullPointerException " wenn ich die methoden der klasse "Spiel" - wuerfeleEinzel , wuerfeleAlle benutze.

    kann mir vielleicht jemand helfen hinter das problem zu kommen? die software soll eine statistik über geworfene augen belibieg vieller würfel führen.



    Klasse Spiel:

    Quellcode

    1. import java.util.*;
    2. public class Spiel{
    3. private Wuerfel[] x; //erzeugt Array von typ Wuerfel
    4. public Spiel(int anzahl){ //anzahl würfel im spiel wird über konstruktor geregelt
    5. x = new Wuerfel[anzahl];
    6. }
    7. public void wuerfeleEinzel(int anzahl, int nummer){ //hier taucht der fehler auf !! anzahl = wieviele würfe und nummer = welcher würfel soll geworfen werden
    8. this.x[nummer].wuerfeleMehrmals(anzahl); //variablen "anzahl" und "nummer" werden geschrieben aber dann kommt der fehler
    9. }
    10. public void wuerfeleAlle(int anzahl){ //hier kann ich alle würfel spielen aber in der zweiten zeile kommt der gleiche fehler wie oben :(
    11. for(int i=0;i<x.length;i++){
    12. this.x[i].wuerfeleMehrmals(anzahl);
    13. }
    14. }
    15. public void zeigeStatistik(){ //leider noch nicht getestet, die methode in klasse würfel funzt aber..
    16. for(int i=0;i<x.length;i++){
    17. if(x[i]!=null){
    18. System.out.println("würfel nummer : "+ (1+i)+
    19. this.x[i].gibStatistik());
    20. }
    21. else{
    22. System.out.println("würfel nummer "+ (1+i)+
    23. "wurde nicht gewürfelt.");
    24. }
    25. }
    26. }
    27. public void zeigeStatistikProzent(int i){ //ebenfalls noch nicht getestet da die fehler meldung kommt..
    28. int prozent;
    29. int wuerfe=0;
    30. int anzahl=0;
    31. for(int wuerfel=0;wuerfel<x.length;wuerfel++){
    32. for(int augennr=0;augennr<6;augennr++){
    33. wuerfe += x[wuerfel].gibHaeufigkeit(augennr);
    34. }
    35. }
    36. for(int wuerfel=0;wuerfel<x.length;wuerfel++){
    37. anzahl= x[wuerfel].gibHaeufigkeit(i);
    38. }
    39. prozent = anzahl/wuerfe*100;
    40. System.out.println("wuerfel seite mit "+(1+i)+" augen wurde zu "+prozent+"% geworfen.");
    41. }
    42. }
    Alles anzeigen


    Klasse Wuerfel :

    Quellcode

    1. import java.util.*;
    2. public class Wuerfel{
    3. private int[] haeufigkeit;
    4. private Random zufallszahlenGenerator;
    5. public Wuerfel(){
    6. haeufigkeit = new int[6];
    7. zufallszahlenGenerator = new Random();
    8. }
    9. private int wuerfeleEinmal(){
    10. int index = zufallszahlenGenerator.nextInt(6);
    11. haeufigkeit[index]++;
    12. return haeufigkeit[index];
    13. }
    14. public void wuerfeleMehrmals(int anzahl){ //mit dieser methode wird "anzahl" mal gewürfelt..
    15. for(int i=0;i<anzahl;i++){
    16. wuerfeleEinmal();
    17. }
    18. }
    19. public int[] gibStatistik(){ //gibt statistik wieder über die würfe..
    20. return haeufigkeit;
    21. }
    22. public int gibHaeufigkeit(int index){ // ´gibt statistik über nur eine seite des würfels
    23. return haeufigkeit[(index - 1)]; //index geht von 0-5 ich möchte aber seite1 =1 haben deshalb index -1...
    24. }
    25. }
    Alles anzeigen


    danke für eure mühe :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von energy47 ()