Die Aufgabe
Aufgabe 1
Es sollen einige Klassen für eine Logistik-Software erstellt werden.
Jede Lieferung enthält eine Sendungsnummer (String), die Empfängeradresse (String), das Gewicht (double) und die Lieferdauer in Tagen (int). Zudem gibt es eine Methode zum Berechnen der Versandkosten und eine Methode, die die Lieferdauer zurückgibt. Die Lieferdauer ist standardmäßig 3 Tage. Die Versandkosten werden gemäß folgender Formel berechnet: Versandkosten = Grundpreis + (Gewicht * 0.5). Der Grundpreis beträgt derzeit 5 Euro.
Eine Standardlieferung enthält zusätzlich eine Methode zum Verschieben um eine bestimmte Zahl von Tagen. Hierdurch wird der Wert für die Lieferdauer entsprechend erhöht.
Bei einer Expresslieferung ist die Lieferdauer standardmäßig 1 Tag. Zudem enthält sie einen Expresszuschlag von standardmäßig 10 Euro. Die Berechnung der Gesamtkosten erfolgt gemäß der oben angegebenen Formel, zuzüglich dem Expresszuschlag.
Schließlich gibt es noch internationale Lieferungen, die zusätzlich zu allgemeinen Lieferungen ein Attribut für Zollgebühren haben. Zudem wird gespeichert, ob die Lieferung bereits vom Zoll abgefertigt wurde – was zu Beginn, beim Anlegen einer internationalen Lieferung noch nicht der Fall ist. Es gibt eine Methode, mit der man erfassen kann, dass die Zollabfertigung stattgefunden hat, und eine weitere Methode mit der man diese Information abfragen kann. Die Lieferdauer einer internationalen Lieferung ist 7 Tage. Die Versandkosten werden gemäß der obigen Formel berechnet, zuzüglich der Zollgebühren.
a) Erstellen Sie die oben angegebenen Klassen und nutzen Sie dabei die Vererbung. Schreiben Sie jeweils auch einen kanonischen Konstruktor mit Parametern für alle benötigten Werte.
b) Testen Sie Ihre Klassen. Legen Sie eine Standard-Lieferung an und geben Sie Versandkosten und Lieferdauer aus. Verschieben Sie sie anschließend um 2 Tage und geben Sie die geänderte Lieferdauer aus. Legen Sie eine internationale Lieferung an, geben Sie die Versandkosten aus, erfassen Sie die Zollabfertigung und zeigen Sie, dass sie erfasst wurde.
c) Ändern Sie die Formel für die Versandkosten auf: Grundpreis + (Gewicht * 0.7). Wenn Sie die Vererbung sinnvoll genutzt haben, muss nur an einer einzigen Stelle im Code eine Änderung durchgeführt werden.
Gesucht sind vier Klassen: eine allgemeine Lieferung und drei besondere Lieferungen. Dann testen wir zwei davon. Zum Schluss ändern wir die Kostenformel und prüfen, dass dafür eine einzige Zeile reicht.
- Das Gemeinsame finden und in die Oberklasse Lieferung schreiben.
- Die drei Unterklassen mit ihren Besonderheiten.
- Standardlieferung und internationale Lieferung testen.
- Die Formel an einer Stelle ändern.
Alle Klassen stehen hier in einer Datei LogistikAnwendung.java. Nur die Klasse mit main ist public; Java erlaubt höchstens eine öffentliche Klasse je Datei. In Eclipse darf jede Klasse auch eine eigene Datei bekommen, wie in der Musterlösung.