Hi, ich habe folgendes Problem.
Ich habe 2 Klassen LottoSpiel und LottoTipp und eine Testklasse TestLotto.
In der Main von TestLotto möchte ich folgende Zeile aufrufen (war so als Vorgabe).
Code:
int gewinn = spiel.getGewinn(tipp);
Wie muss meine Methode getGewinn aussehen?
Ich habe schon alles versucht, aber ich kommen zu keinem Ergebnis.
Mein Problem ist (tipp) aus der Übergabe zu lesen und dann die Werte
aus der Klasse LottoTipp zu bekommen, damit ich den Vergleich durchführen kann.
Hier der Javacode:
Java:
classLottoSpiel{publicint anzahlzieh;publicint auswahl;publicint[] tabzieh;LottoTipp ltipp;// Fuellen der Objekte publicLottoSpiel(int anzahlzieh,int auswahl){this.anzahlzieh = anzahlzieh;this.auswahl = auswahl;this.tabzieh =newint[anzahlzieh];}//Ermittlung des GewinnespublicintgetGewinn(){double berech=0.0;int gewinn =0;//In den Werten von ltipp steht an dieser Stelle nichtsif(anzahlzieh != ltipp.anzzieh || auswahl != ltipp.anzausw)System.out.println("Achtung die Spielsysteme stimmen nicht überein, daher kein Gewinn.");elsefor(int i =0; i < anzahlzieh; i++){for(int j =0; j < anzahlzieh; j++){if(tabzieh[i]== ltipp.tipps[j]){
berech++;break;}}}if(berech ==1)
gewinn =1;else
gewinn =(int)Math.pow(10,berech-1);return gewinn;}}classLottoTipp{publicint anzzieh;publicint anzausw;// Tabelle der eingegebenen Zahlen (Tipps)publicint[] tipps;// Fuellen der Objekte publicLottoTipp(int anzzieh,int anzausw){this.anzzieh = anzzieh;this.anzausw = anzausw;this.tipps =newint[anzzieh];}}publicclassTestLotto{publicstaticvoidmain(String[] args){LottoSpiel spiel =newLottoSpiel(6,49);// spiel.ziehen(); //Zufallszaghlen werden hier gezogen LottoTipp tipp =newLottoTipp(6,49);// tipp.abgeben(); //Tippeingabe Konsole//Gewinn ermitteln: Vergleich der Werte aus tabzieh und tipps// wie muss getGewinn richtig lautenint gewinn = spiel.getGewinn(tipp);}// end of main}
Also, in deiner klasse LottoTipp hast du alle Variablen public, was nich unbedingt schön ist.
Wenn du eine eigene Klasse LottoTipp machen würdest, was schöner ist als mehrere Klassen in einer Datei, musst du deiner Klasse getGewinn die instanz auf LottoTipp mitgeben damit getGewinn darauf zugreiffen kann.
Java:
classLottoTipp{publicint anzzieh;publicint anzausw;// Tabelle der eingegebenen Zahlen (Tipps)publicint[] tipps;// Fuellen der Objekte publicLottoTipp(int anzzieh,int anzausw){this.anzzieh = anzzieh;this.anzausw = anzausw;this.tipps =newint[anzzieh];}}
Jetzt kommt dadurch der Fehler NullPointerException.
Das liegt aus meiner Sicht das in den Felder ltipp.anzzieh, ltipp.auszausw und ltipp.tipps[]
kein Wert steht.
Wie kann ich diese Felder durch die Übergabe füllen bzw. womit muss ich diese füllen.
Hab mir den Code zwar nicht angesehen, aber i.d.R. dürfte die Exception eher daher kommen, dass dein LottoTipp-Objekt selbst leer ist (und damit natürlich zwangsläufig auch alle Instanzvariablen wie anzzieh).
Manchmal ist man doch blind. Sind noch meine Verständnisprobleme mit den Klassen, Methoden und Objekten.
Jetzt ist mir das auch klar und manchmal auch so einfach.
Vielen, vielen Dank.