Verständnisprobleme Aufgabenstellung Aktionsobjekte und generische Listen

FlawlessGlue

Neues Mitglied
Hallo zusammen,

mir wurde eine Aufgabe gegeben, die ich grundsätzlich nicht verstehe und hoffe, dass mir jemand erstmal in groben Zügen erklären kann, was überhaupt von mir verlangt ist:

Lösen Sie mit Hilfe von Aktionsobjekten für generische Listen folgende Probleme:
a) In einer Liste stehen Zahlen (Typ Float) für Temperaturangaben in der Einheit Fahrenheit, diese sollen durch entsprechende Werte in Celsius ersetzt werden.
b) Es soll die Gesamtlänge der in der Liste enthaltenen Zeichenketten (Typ String) bestimmt werden.

Sie müssen dazu die Schnittstelle:
Java:
public interface ActionObject{
    void action(Node n);
}
für jede Aktion in der Programmiersprache Java implementieren. Die Listenknoten sehen wie folgt aus:
Java:
public class Node{
    public Object value;
    public Node next;
}

Schreiben Sie nun ein kurzes Programm, das mit Hilfe einer gegebenen Liste die Aktionsobjekte aus a) und b) verwendet. Die Methode "traverseAndApply(ActionObject ao)"
Java:
public void traverseAndApply(ActionObject p){
    for(Node cursor = Head; cursor != null; cursor = cursor.next){
        p.action(cursor);
    }
}
zur Anwendung eines Aktionsobjektes auf alle Knoten der Liste kann dabei aus der Vorlesung übernommen werden:
Java:
public void convertTemperatures(List list){
    //hier soll das Aktionsobjekt aus a) verwendet werden
}
public void getStringTotalLength(List list){
    //hier soll das Aktionsobjekt aus b) verwendet werden
}

Berücksichtigen Sie in ihrer Lösung, dass die Liste neben Objekten vom Typ Float und String auch Elemente anderer Referenztypen enthalten können.

Nun meine Fragen:
1) Ich habe eine generische Liste vor mir. Die enthält Float Werte und Strings und anderes Zeug. Alle Float Werte sollen zu Celsius konvertiert werden und die Anzahl aller Stellen aller Strings in der Liste soll gezählt werden (also mit .length()). Habe ich Recht wenn ich das für das Ziel des Programmes halte?
2) Was fange ich mit der Schnittstelle an? Ich habe keinen Ansatzpunkt zu verstehen, wie ich sie gebrauchen kann.
3) Das Gleiche trifft auch auf class Node zu.
4) Und auf traverseAndApply.
5) Schreibe ich dann am Ende alles in convertTemperatures rein? Ist das dann die Funktion in der das eigentliche Programm steht? Ist List list die Liste von Objekten? (Frage gilt natürlich auch für getStringTotalLength)

Bitte seid nachsichtig mit langsamen Antworten, muss eure Antworten oft erstmal verarbeiten :)

Vielen Dank!
 

mihe7

Top Contributor
1) würde ich so sehen
2) Du schreibst eine Klasse, die die Schnittstelle implementiert. Ein Objekt dieser Klasse wird dann an traverseAndApply übergeben. Dort wird für jeden Knoten der Liste die Methode action des übergebenen Objekts (=Objekt Deiner Klasse) aufgerufen.
3) Du benötigst value lesend und schreibend, um z. B. die Temperaturen zu konvertieren.
4) s. 2.
5) in convertTemperatures erzeugst Du eine Instanz der Klasse aus 2) und rufst list.traverseAndApply auf.
 

Ähnliche Java Themen

Neue Themen


Oben