Hallo leute
ich habe vor einigen Tagen die Hausuafgabe bekommen, ein Programm in Java zu schreiben, welches sowohl den Umfang als auch den Flacheninhalts eines Dreiecks und eines Kreises errechnet. Jetzt wo ich einigermaßen "fertig" bin, will mein Programm einfach nicht laufen und ich sehe den Fehler nicht so recht (Beschreibe ich nochmal genauer unter dem Quellcode). Außerdem sollte das ganze eine Abstrakte Klasse "Figur" haben. Diese enthält die Methode CompareTo, welche bei mir noch falsch ist. Ich habe mir das auch noch nicht angesehen, also ignoriert das einfach
und hier Spuckt Eclipse mir die NullPointerException aus...in Zeile 42 bei:
" double a = p1.abstand(p2);
double b = p1.abstand(p3);
double c = p2.abstand(p3);
"
Die Klasse "Kreis" war auch noch nicht fertig...es geht mir hier ja erstmal auch nur um die Klasse "Dreieck
Also, folgendes Problem: Ich bekomme beim Ausführen immer einen Fehler beim Ausführen des Programms. Der erste ist beschrieben, unter meiner Klasse Dreieck und der Zweite ist in der Main-Klasse, in Zeile 15 ( "Figur f = new Dreieck (p1, p2, p3);" )...der Genaue Fehler ist folgender:
"Exception in thread "main" java.lang.NullPointerException
at figuren.Dreieck.<init>(Dreieck.java:42)
at figuren.Main.main(Main.java:15)"
Wisst ihr vielleicht, wo mein Fehler liegt? Ich bitte euch ganz dringend um Rat
ich habe vor einigen Tagen die Hausuafgabe bekommen, ein Programm in Java zu schreiben, welches sowohl den Umfang als auch den Flacheninhalts eines Dreiecks und eines Kreises errechnet. Jetzt wo ich einigermaßen "fertig" bin, will mein Programm einfach nicht laufen und ich sehe den Fehler nicht so recht (Beschreibe ich nochmal genauer unter dem Quellcode). Außerdem sollte das ganze eine Abstrakte Klasse "Figur" haben. Diese enthält die Methode CompareTo, welche bei mir noch falsch ist. Ich habe mir das auch noch nicht angesehen, also ignoriert das einfach
Java:
abstract class Figur implements Comparable {
abstract double inhalt();
abstract double umfang();
public int compareTo(Object object) {
return 2;
}
}
Java:
public class Punkt {
// Attribute
private double x;
private double y;
private final double EPS = 0.0000001;
// Konstruktor
public Punkt(double x, double y) {
this.x = x;
this.y = y;
}
// get-/set-Methoden
public double getX() {
return this.x;
}
public double getY() {
return this.y;
}
public void setX(double x) {
this.x = x;
}
public void setY(double y) {
this.y = y;
}
// Überlagerung von Methoden der Klasse Object
public boolean equals(Object x) {
Punkt that = (Punkt) x;
return Math.abs(this.x - that.x) < this.EPS && Math.abs(this.y - that.y) < this.EPS;
}
public Object clone() {
return new Punkt(this.x, this.y);
}
public String toString() {
return String.format("%.1f, %.1f", this.x, this.y);
}
// Anwendungen
public double abstand() {
return Math.sqrt((this.x * this.x) + (this.y * this.y));
}
public double abstand(Punkt p) {
double diffX = Math.abs(this.x - p.x);
double diffY = Math.abs(this.y - p.y);
return Math.sqrt((diffX * diffX) + (diffY * diffY));
}
}
Java:
public class Dreieck extends Figur{
public Punkt p1;
public Punkt p2;
public Punkt p3;
public Dreieck (Punkt p1 , Punkt p2 , Punkt p3){
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}
public void setP1(Punkt p1) {
this.p1 = p1;
}
public void setP2(Punkt p2) {
this.p2 = p2;
}
public void setP3(Punkt p3) {
this.p3 = p3;
}
public Punkt getP1() {
return p1;
}
public Punkt getP2() {
return p2;
}
public Punkt getP3() {
return p3;
}
double a = p1.abstand(p2);
double b = p1.abstand(p3);
double c = p2.abstand(p3);
double s = 0.5 * (a + b + c);
double inhalt() {
double inhalt = Math.sqrt(s*(s-a)*(s-b)*(s-c));
return inhalt;
}
double umfang() {
double umfang = a+b+c;
return umfang;
}
public String toString(){
return String.format("%f /n%f", inhalt(), umfang() );
}
}
und hier Spuckt Eclipse mir die NullPointerException aus...in Zeile 42 bei:
" double a = p1.abstand(p2);
double b = p1.abstand(p3);
double c = p2.abstand(p3);
"
Java:
public class Kreis extends Figur {
private Punkt p4;
private double r;
private double pi = Math.PI;
public Kreis (Punkt p4, double r){
this.p4 = p4;
this.r = r;
}
public Punkt getP4() {
return p4;
}
public double getR() {
return r;
}
public void setP4(Punkt p4) {
this.p4 = p4;
}
double inhalt() {
double inhalt = (pi * r * r);
return inhalt;
}
double umfang() {
double umfang = (2 * pi * r);
return umfang;
}
}
Die Klasse "Kreis" war auch noch nicht fertig...es geht mir hier ja erstmal auch nur um die Klasse "Dreieck
Java:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Punkt p1 = new Punkt(1.0, 1.0);
Punkt p2 = new Punkt(1.0, 4.0);
Punkt p3 = new Punkt(5.0, 2.5);
Figur f = new Dreieck (p1, p2, p3);
System.out.println (f.inhalt());
System.out.println (f.umfang());
}
}
Also, folgendes Problem: Ich bekomme beim Ausführen immer einen Fehler beim Ausführen des Programms. Der erste ist beschrieben, unter meiner Klasse Dreieck und der Zweite ist in der Main-Klasse, in Zeile 15 ( "Figur f = new Dreieck (p1, p2, p3);" )...der Genaue Fehler ist folgender:
"Exception in thread "main" java.lang.NullPointerException
at figuren.Dreieck.<init>(Dreieck.java:42)
at figuren.Main.main(Main.java:15)"
Wisst ihr vielleicht, wo mein Fehler liegt? Ich bitte euch ganz dringend um Rat
Zuletzt bearbeitet von einem Moderator: