Hallo,
ich lerne seit diesem Jahr mit Bluej umzugehen (in der Schule) und wollte als Übung mal ein 4-gewinnt programmieren.
Das hat so weit auch ganz gut geklappt, allerdings funktioniert das intialisieren vom Spielfeld nicht mehr.
hier der Code der betroffenen Methode :
public void erstelleFeld(){
for (int i=0; i<10; i++){
for(int j=0; j<10; j++)
{
feld[j]** = new SPIELWALZE(50+j*30, 300-i*30, 30, 8);
feld[j]**.zeichne();
}
}
}```
Bis gestern hat es noch geklappt, jetzt gibt BlueJ jedes mal die Fehlermeldung
"java.lang.NullPointerException
at Test.erstelleFeld(Test.java:11)"
aus (hier Z. 6). Ich würde mich über Hilfe freuen ^^
-Blutwurst
Wie gesagt, du hast feld bisher nur deklariert aber nicht initialisiert. Ändere die zweite Zeile so ab: private SPIELWALZE[][] feld = new SPIELWALZE[10][10];
Dann hast du jetzt platz für 10x10 SPIELWALZE Instanzen.
PS:
Klassennamen schreibt man im UpperCamelCase. Ein besserer Name wäre also Spielwalze
[QUOTE=Blutwurst]hat funktioniert, danke
Was mich wundert ist ,dass es vorher funktioniert hat, und ich hab nix geändert…[/QUOTE]
Ich weiß aber, woran das liegt. Du kannst mit BlueJ ein Objekt der Klasse Test erstellen, dessen Objektvariable feld einen Wert zuweisen (quasi Instanziierung [Instantiierung] und Initialisierung) und (DANN) die Methode "erstelle"Feld() darauf aufrufen.
Bis auf die Benennung (bei Klassennamen UpperCamelCase, mit ae oe ue anstatt Umlauten) ist alles Top.