Hallo liebe Community, ich war gerade dabei ein Objekt vom Typ Wald zu erstellen, jedoch meldet der Compiler einen Fehler und ich finde ihn schon die ganze Zeit nicht :S... kann jemand helfen?
Und noch die Fehlermeldung, damit man auch ohne Kompilieren weiß, worum es geht:
Code:
Baum.java:50:21: error: non-static variable this cannot be referenced from a static context
Wald wald1 = new Wald(4,4); //Das funktioniert nicht!!!!!!!!!!
^
1 error
Dankeschön für die Hilfe... Vielleicht könnten wir den Thread daweil noch offen halten, falls sich Unklarheiten ergeben... Aber eins vorweg noch interessehalber:
Du hast ja gemeint: static in meiner inneren Klasse einfügen. Kann ich diese innere Klasse auch nach der äußersten klammer einfügen, und muss ich da was beachten? Als ich das bei einem anderen Beispiel versucht habe, ist das nicht gegangen, obwohl die Sichtbarkteien auf protected und public waren... weißt du da was?
Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Baum$Wald.matrix(Baum.java:23)
at Baum$Wald.<init>(Baum.java:33)
at Baum.main(Baum.java:51)
Zu outofBoundsException hat google gesagt, dass die 4 zu groß sind... aber damit kann ich leider nichts anfangen
Du legst ein Array mit x und y mit 4x4 Feldern an. Damit ist 3 (lenght - 1) der höchste Arrayindex, da Indexierungen in nahezu jeden Fall bei 0 beginnen.
Java:
System.out.println(wald[x][y].toString());
Schau mal welche Variablen den Index angeben. btw. nimm lieber "Array".length in der For als Bedingung. Damit muss von außen beim Aufruf die Größe nicht gekannt werden.
Ich verstehe worauf du hinaus willst... Aber meiner Meinung nach müsste die Dimension der Matrix passen (4,4) und die Bedingung in der For-Schleife lautet solange i bzw j kleiner als x bzw y. Das sollte doch auch 4 mal aufgerufen werden und somit passen oder täusche ich mich?
Du greifst aber nicht mit der Durchlaufvariable der Schleifen sondern den Längenvariablen zu. Könnte aber jeden passieren, der die Höhe und Breite mit den Variable "x" und "y" angibt. :autsch:
Du greifst aber nicht mit der Durchlaufvariable der Schleifen sondern den Längenvariablen zu. Könnte aber jeden passieren, der die Höhe und Breite mit den Variable "x" und "y" angibt. :autsch:
Jetzt ergibt sich noch eine NullPointerException... das heißt glaub ich, dass ein Objekt in main noch nicht initialisiert wurde...sehe dennoch nicht wo das sein sollte...
Exception in thread "main" java.lang.NullPointerException
at Baum$Wald.matrix(Baum.java:23)
at Baum$Wald.<init>(Baum.java:33)
at Baum.main(Baum.java:51)
Wenn an der Stelle aber kein Baum steht kann er auch von nichts eine Methode aufrufen. Eine leere Fläche zu besorgen bringt nichts, du musst noch Bäume pflanzen.