Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich soll eine methode schreiben die 2 intervallgrenzen, die anzahl der teilintervalle und eine funktion als parameter übergeben bekommt. mit diesen "informationen" berechnet die methode dann mittels zusammengesetzter trapezregel den flächeninhalt im intervall. jetzt weiss ich allerdings nicht wie ich eine funktion (wie zb cos(x)) als parameter übergeben kann, in den übungen wurde gesagt das geht in java.
Mit einem Interface, das eine Methode "double funktion( double x)" enthält. Dann machst du irgendwelche Klassen, welche dieses Interface implementieren; und zur Laufzeit übergibst du eine Instanz einer dieser Klassen.
ohje, interfaces... ich hatte das in der vorlesung, allerdings ganz am schluss, wirkte als ob das unbedingt noch reingequetscht wurde. mir entging ehrlich gesagt die motivation zu interfaces.
ne klasse die ein interface implementiert vereinbart damit doch bestimmte methodenschnittstellen bereitzustellen, oder wie war das? ich seh jetzt auch nicht so direkt wie mir das weiterhelfen könnte, kannst du mir das bitte etwas genauer erklären? trotzdem danke schonmal für die schnelle antwort!
ich habe nen kumpel der in c++ recht gut bewandert ist das gleiche gefragt und er hat gemeint das würde mit funktoren gehen, gibt es sowas in java auch? ehrlich gesagt hab ich ihn auch net so richtig verstanden (war aber ein chat) und im internet bin ich auch net fündig geworden.
In C (und damit auch in C++) kann man Pointer auf Funktionen als Parameter uebergeben. Das ist eine der grausig-schoenen Faehigkeiten von C.
In Java geht das definitv nicht (und das ist auch gut so).
Beispiel was Beni meint:
Code:
public class Test
{
public interface FunktionsWrapper
{
public double rechne( double x);
}
public static double methode(double x1, double x2, FunktionsWrapper funktion)
{
return funktion.rechne(x1) + funktion.rechne(x2);
}
public static void main(String[] args)
{
System.out.println(methode(1.0, 2.0, new FunktionsWrapper() {
public double rechne(double x)
{
return Math.sin(x);
}}));
System.out.println(methode(1.0, 2.0, new FunktionsWrapper() {
public double rechne(double x)
{
return Math.cos(x);
}}));
}
}
Das interface FunktionsWrapper beschreibt nur eine einfache Funktion, in der main Methode wird dann je nach Bedarf eine annonyme Klasse angelegt, die das interface korrekt implementiert.
das muss ich mal genau durchgehen, nur leider habe ich jetzt keine zeit mehr! hoffentlich komm ich damit zurecht wenn nicht dann meld ich mich nochmal.