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:
für jede Aktion in der Programmiersprache Java implementieren. Die Listenknoten sehen wie folgt aus:
Schreiben Sie nun ein kurzes Programm, das mit Hilfe einer gegebenen Liste die Aktionsobjekte aus a) und b) verwendet. Die Methode "traverseAndApply(ActionObject ao)"
zur Anwendung eines Aktionsobjektes auf alle Knoten der Liste kann dabei aus der Vorlesung übernommen 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!
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);
}
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);
}
}
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!