Hi,
ich war bisher stiller Mitleser allerdings habe ich nun ein Problem mit meinem Code und ich komme einfach nicht drauf was falsch sein könnte. Google half leider auch nicht weiter. Es geht darum den richtigen Umgang mit Interfaces zu erlernen. Gegeben sind folgende Klassen:
Und:
Die Aufgabe ist die Klasse "Triangle" zu implementieren inkl. Methode zum Testen.
Das ist meine Triangle Klasse:
Ich meine ich wäre soweit fertig jedoch bekomme ich immer den Fehler:
Exception in thread "main" java.lang.NullPointerException
at exercise02.Triangle.perimeter(Triangle.java:26)
at exercise02.Triangle.main(Triangle.java:50)
Kann mir wer einen Tipp geben ich bin so langsam mit meinem Latein am Ende.
ich war bisher stiller Mitleser allerdings habe ich nun ein Problem mit meinem Code und ich komme einfach nicht drauf was falsch sein könnte. Google half leider auch nicht weiter. Es geht darum den richtigen Umgang mit Interfaces zu erlernen. Gegeben sind folgende Klassen:
Java:
package exercise02;
public interface Polygon {
public Point[] allVertexes();
public double perimeter();
public double area();
public void move(double dx, double dy);
}
Und:
Java:
package exercise02;
//Die nachfolgende Klasse repraesentiert einen Punkt in einem
//zweidimensionalen Koordinatensystem.
public class Point {
// Die Instanzvariablen zur Aufnahme der Koordinatenwerte
private double x, y;
// Konstruktor mit Uebergabe der x und y - Koordinate
Point(double x, double y)
{
this.x = x;
this.y = y;
}//endconstructor
// Auslesen der x-Koordinate
double getX()
{
return x;
}//endmethod getX
// Auslesen der y-Koordinate
double getY()
{
return y;
}//endmethod getY
// Abstand zu einem anderen Punkt
double distance(Point other)
{
double dx = getX()-other.getX();
double dy = getY()-other.getY();
return Math.sqrt(dx*dx + dy*dy);
}//endmethod distance
// Erzeugung eines neuen Punktes, der zum Ausgangspunkt verschoben ist
Point moved(double deltaX, double deltaY)
{
return new Point(getX() + deltaX, getY() + deltaY);
}//endmethod moved
// Rueckgabe der Koordinaten in einem String in lesbarer Form
public String toString()
{
return String.format("(%.2f;%.2f)", getX(), getY());
}//endmethod toString
}//endclass
Die Aufgabe ist die Klasse "Triangle" zu implementieren inkl. Methode zum Testen.
Das ist meine Triangle Klasse:
Java:
package exercise02;
public class Triangle
{
private Point p1;
private Point p2;
private Point p3;
private Point [] feld_ref= new Point[3];
public Triangle (Point p1, Point p2, Point p3)
{
feld_ref[0]=p1;
feld_ref[1]=p2;
feld_ref[2]=p3;
}
public Point[] allVertexes()
{
return feld_ref;
}
public double perimeter()
{
double distance1=p1.distance(p2);
double distance2=p2.distance(p3);
double distance3=p3.distance(p1);
double perimeter=distance1+distance2+distance3;
return perimeter;
}
public double area()
{
double s=0.5*(perimeter());
double flaeche=Math.sqrt(s* (s-(p1.distance(p2))) * (s-(p2.distance(p3))) * (s-p3.distance(p1)));
return flaeche;
}
public static void main(String[] args)
{
Point p1=new Point(0.0, 0.0);
Point p2=new Point(1.0, 0.0);
Point p3=new Point(0.0, 1.0);
Triangle dreieck= new Triangle(p1, p2, p3);
dreieck.allVertexes();
dreieck.perimeter();
dreieck.area();
}
}
Ich meine ich wäre soweit fertig jedoch bekomme ich immer den Fehler:
Exception in thread "main" java.lang.NullPointerException
at exercise02.Triangle.perimeter(Triangle.java:26)
at exercise02.Triangle.main(Triangle.java:50)
Kann mir wer einen Tipp geben ich bin so langsam mit meinem Latein am Ende.