Hallo nochmal !
Ich habe nochmal eine Frage zu einer anderen Aufgabe. Ich würde gerne wissen, ob mein Lösungsansatz korrekt ist?
Hier ist erstmal der Quellcode:
Meine Aufgabe soll es nun sein, die Klassen zu verbessern. Dabei soll ich in Richtung einer einfachen Erweiterbarkeit (einfacher Einbau einer neuen Funktion) denken.
Mein Lösungsansatz wäre nun, eine abstrakte Oberklasse zu bilden die die Funktion
dort einzubetten. Diese Funktion sollen dann die Klassen Funktion1 und Funktion2 erben bzw. überschreiben. Kann ich hier sonst noch etwas optimieren? Es macht wohl wenig Sinn auch noch die Methoden f1() und f2() in die abstrakte Klasse mit einzubauen oder? Im übrigen ist das auch wieder son tolles Beispiel aus einer Vorlesung für Javagrundlagen.
Die vollständige Lösung wäre dann:
So ich habe alle Codezeilen nochmal kenntlich gemacht und besser eingerückt. Danke für die Mithilfe!
Ich habe nochmal eine Frage zu einer anderen Aufgabe. Ich würde gerne wissen, ob mein Lösungsansatz korrekt ist?
Hier ist erstmal der Quellcode:
Java:
public class Funktion1{
public double f1(double x) {
return x*x -1;
}
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double Schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f1(x));
}
}
}
Java:
public class Funktion2{
public double f2(double x) {
return x*x -1;
}
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f2(x));
}
}
}
Java:
public class Hauptprogramm {
public static void main (String [] args) {
Funktion1 f1 = new Funktion1();
Funktion2 f2 = new Funktion2();
f1.gebeWertelisteAus(1, 5, 0.2);
f2.gebeWertelisteAus(1, 5, 0.2);
}
}
Meine Aufgabe soll es nun sein, die Klassen zu verbessern. Dabei soll ich in Richtung einer einfachen Erweiterbarkeit (einfacher Einbau einer neuen Funktion) denken.
Mein Lösungsansatz wäre nun, eine abstrakte Oberklasse zu bilden die die Funktion
Java:
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f2(x));
}
}
dort einzubetten. Diese Funktion sollen dann die Klassen Funktion1 und Funktion2 erben bzw. überschreiben. Kann ich hier sonst noch etwas optimieren? Es macht wohl wenig Sinn auch noch die Methoden f1() und f2() in die abstrakte Klasse mit einzubauen oder? Im übrigen ist das auch wieder son tolles Beispiel aus einer Vorlesung für Javagrundlagen.
Die vollständige Lösung wäre dann:
Java:
abstract class Basisklasse{
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f2(x));
}
}
}
Java:
public class Funktion1 extends Basisklasse{
public double f1(double x) {
return x*x -1;
}
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f1(x));
}
}
}
Java:
public class Funktion2 extends Basisklasse{
public double f2(double x) {
return x*x -1;
}
public void gebeWertelisteAus(double startpunkt, double endpunkt,
double schrittweite) {
System.out.format(" x= f(x) ");
for (double x = startpunkt; x { endpunkt; x += schrittweite) {
System.out.format("%8.2f %8.2f\n", x, f2(x));
}
}
}
Java:
public class Hauptprogramm {
public static void main (String [] args) {
Funktion1 f1 = new Funktion1();
Funktion2 f2 = new Funktion2();
f1.gebeWertelisteAus(1, 5, 0.2);
f2.gebeWertelisteAus(1, 5, 0.2);
}
}
So ich habe alle Codezeilen nochmal kenntlich gemacht und besser eingerückt. Danke für die Mithilfe!
Zuletzt bearbeitet: