Guten Morgen liebes Forum,
mich beschäftigt folgendes Problem:
Ich erstelle in einem Testprogramm einen Weg w1, der nur einen Punkt beinhaltet. Dieser Punkt hat eine x und eine y Koordinate. Das gleiche tue ich für einen Weg w2.
Nun möchte ich den Punkt des zweiten Weges zum Punkt des ersten Weges einfügen.
Die Vorgabe hierbei ist, dass ich dazu ein Feld vom Typ Punkt benutzen muss, der im Konstruktor der Klasse Weg erstellt wird. Wenn ich dann aber die Methode aufrufe, die den zweiten Punkt zum ersten Weg einfügt, bekomme ich eine NullPointerException. Meiner Meinung nach dürfte das nicht passieren, aber ich bin leider noch ein Grünschnabel und scheine etwas wesentliches zu übersehen. Folgenden Quellcode habe ich geschrieben:
public class Punkt {
private int x,y;
public Punkt(int x, int y) {
this.x=x;
this.y=y;
}
public String toString() {
return "("+x+","+y+")";
}
}
public class Weg {
private Punkt[] wegpunkte;
private Punkt p1;
public Weg(int x, int y) {
Punkt p1 = new Punkt(x,y);
Punkt[] wegpunkte = new Punkt[1];
wegpunkte[0]=p1;
}
public int getAnzahl() {
return this.wegpunkte.length;
}
public void verlaengern(Weg w) {
int laenge=this.wegpunkte.length;
Punkt[] wegpunkteBuffer = new Punkt[laenge+1];
for(int i=0; i<wegpunkte.length; i++) {
wegpunkteBuffer=wegpunkte;
}
wegpunkteBuffer[wegpunkte.length+1]=w.p1;
Punkt[] wegpunkte = new Punkt[wegpunkteBuffer.length];
for(int i=0; i<wegpunkteBuffer.length; i++) {
wegpunkte=wegpunkteBuffer;
}
}
}
public class Test {
public static void main(String[] args) {
Weg w1 = new Weg(1,1);
Weg w2 = new Weg(2,2);
w1.verlaengern(w2);
}
}
Die Konsole spuckt leider folgendes aus:
Exception in thread "main" java.lang.NullPointerException
at Weg.verlaengern(Weg.java:15)
at Test.main(Test.java:6)
----
Für jegliche Hilfe und Tipps bin ich sehr dankbar!
Beste Grüße
mathesis93
mich beschäftigt folgendes Problem:
Ich erstelle in einem Testprogramm einen Weg w1, der nur einen Punkt beinhaltet. Dieser Punkt hat eine x und eine y Koordinate. Das gleiche tue ich für einen Weg w2.
Nun möchte ich den Punkt des zweiten Weges zum Punkt des ersten Weges einfügen.
Die Vorgabe hierbei ist, dass ich dazu ein Feld vom Typ Punkt benutzen muss, der im Konstruktor der Klasse Weg erstellt wird. Wenn ich dann aber die Methode aufrufe, die den zweiten Punkt zum ersten Weg einfügt, bekomme ich eine NullPointerException. Meiner Meinung nach dürfte das nicht passieren, aber ich bin leider noch ein Grünschnabel und scheine etwas wesentliches zu übersehen. Folgenden Quellcode habe ich geschrieben:
public class Punkt {
private int x,y;
public Punkt(int x, int y) {
this.x=x;
this.y=y;
}
public String toString() {
return "("+x+","+y+")";
}
}
public class Weg {
private Punkt[] wegpunkte;
private Punkt p1;
public Weg(int x, int y) {
Punkt p1 = new Punkt(x,y);
Punkt[] wegpunkte = new Punkt[1];
wegpunkte[0]=p1;
}
public int getAnzahl() {
return this.wegpunkte.length;
}
public void verlaengern(Weg w) {
int laenge=this.wegpunkte.length;
Punkt[] wegpunkteBuffer = new Punkt[laenge+1];
for(int i=0; i<wegpunkte.length; i++) {
wegpunkteBuffer=wegpunkte;
}
wegpunkteBuffer[wegpunkte.length+1]=w.p1;
Punkt[] wegpunkte = new Punkt[wegpunkteBuffer.length];
for(int i=0; i<wegpunkteBuffer.length; i++) {
wegpunkte=wegpunkteBuffer;
}
}
}
public class Test {
public static void main(String[] args) {
Weg w1 = new Weg(1,1);
Weg w2 = new Weg(2,2);
w1.verlaengern(w2);
}
}
Die Konsole spuckt leider folgendes aus:
Exception in thread "main" java.lang.NullPointerException
at Weg.verlaengern(Weg.java:15)
at Test.main(Test.java:6)
----
Für jegliche Hilfe und Tipps bin ich sehr dankbar!
Beste Grüße
mathesis93