Hallo, ich bin gerade dabei eine Aufgabe zu bearbeiten, in der ich eine Klasse zur Berechnung einer kubischen Funktion schreiben soll.
Die Aufgabe: "Es soll eine Klasse geschrieben werden, die eine kubische Funktion a*x^3 + b* x^2 + c*x + d verwaltet. DieKlasse soll die folgende Schnittstelle implementieren:
Ein Testprogramm könnte wie folgt aussehen:
Mit der Berechnung an sich habe ich eigentlich keine Probleme, allerdings verstehe ich zum Einen nicht, warum die Funktion f als Objekt der Schnittstelle KubFunktion und nicht direkt als Objekt der Klasse Kub_name initialisiert wird (was bringt das?) und zum Anderen muss ich da ja irgendetwas "casten" damit diese Zuweisung überhaupt klappt. Das muss ich sicher in der von mir geschriebenen Klasse machen, doch wie geh ich da vor? Ich hab auch gelesen, dass ich bei sowas get/set Methoden verwenden muss, kann mir jemand in diesem Zusammenhang erklären, wozu ich die brauche?
Wenn die Funktion "normal" initialisiert würde, wär das alles gar nicht so umständlich...
P.S.: Bisher sieht meine Klasse so aus:
Die Aufgabe: "Es soll eine Klasse geschrieben werden, die eine kubische Funktion a*x^3 + b* x^2 + c*x + d verwaltet. DieKlasse soll die folgende Schnittstelle implementieren:
Java:
package belegdrei;
public interface KubFunktion {
public void init (double a, double b, double c, double d);
public double funktionswert (double x);
public int berechneNullstellen (double xunten, double xoben);
public double nullstelleNr (int i);
public KubFunktion differenziere();
public KubFunktion addiere(KubFunktion f);
}
Ein Testprogramm könnte wie folgt aussehen:
Java:
package belegdrei;
public class Testprogramm {
public static void main (String[] args) {
KubFunktion f=new Kub_name();
f.init(0,1,2,1);
int anz = f.berechneNullstellen(-2,10); // anz=1
double nullst=f.nullstelleNr(1); //nullst=1.0
KubFunktion g=f.differenziere();
double y=g.funktionswert(5); // y =12.0
//Ausgabe folgt...
}
}
Mit der Berechnung an sich habe ich eigentlich keine Probleme, allerdings verstehe ich zum Einen nicht, warum die Funktion f als Objekt der Schnittstelle KubFunktion und nicht direkt als Objekt der Klasse Kub_name initialisiert wird (was bringt das?) und zum Anderen muss ich da ja irgendetwas "casten" damit diese Zuweisung überhaupt klappt. Das muss ich sicher in der von mir geschriebenen Klasse machen, doch wie geh ich da vor? Ich hab auch gelesen, dass ich bei sowas get/set Methoden verwenden muss, kann mir jemand in diesem Zusammenhang erklären, wozu ich die brauche?
Wenn die Funktion "normal" initialisiert würde, wär das alles gar nicht so umständlich...
P.S.: Bisher sieht meine Klasse so aus:
Java:
package belegdrei;
public class Kub_name {
private double a,b,c,d;
public Kub_name(double a, double b, double c, double d) {
this.a=a;
this.b=b;
this.c=c;
this.d=d;
}
public double funktionswert (double x) {
return (this.a*x*x*x+this.b*x*x+this.c*x+this.d);
}
public int berechneNullstellen (double xunten, double xoben) {
return 0;
}
public double nullstelleNr (int i) {
return 0;
}
public KubFunktion differenziere() {
return null;
}
public KubFunktion addiere(KubFunktion f){
return f;
}
public double getA() {
return this.a;
}
public double getB() {
return this.b;
}
public double getC() {
return this.c;
}
public double getD() {
return this.d;
}
}
Zuletzt bearbeitet: