Dein Fortschritt:
0 / 0 Aufgaben
1
Der Onlineshop
AFB I–IIEin Onlineshop verkauft Waren mit unterschiedlichen Steuersätzen. Die Preislogik wurde mit Vererbung modelliert.
Klassendiagramm des Onlineshops (Ausschnitt)
Artikel
- - bezeichnung: Zeichenkette
- # nettopreis: Fließkommazahl
- c Artikel(bez: Zeichenkette, netto: Fließkommazahl)
- + getPreis(): Fließkommazahl
Lebensmittel
- - mhd: Zeichenkette
- c Lebensmittel(bez: Zeichenkette, netto: Fließkommazahl, mhd: Zeichenkette)
- + getPreis(): Fließkommazahl
Gutschein
- c Gutschein(wert: Fließkommazahl)
- + getPreis(): Fließkommazahl
Ein Artikel kostet regulär den Nettopreis plus 19 % Mehrwertsteuer, Lebensmittel plus 7 %. Gutscheine sind steuerfrei. Der Warenkorb kennt beliebig viele Artikel (- artikel: DynArray<Artikel>) und berechnet mit gesamtpreis() die Summe aller Preise.
- Beschreiben Sie die im Klassendiagramm dargestellten Beziehungen. Gehen Sie auf die Bedeutung von
#und auf das mehrfache Auftreten vongetPreis()ein. 4 BE - Implementieren Sie die Klasse
Lebensmittelvollständig in Java. 5 BE - Wenden Sie die Methode
gesamtpreis()auf einen Warenkorb an, der einenArtikel("Kopfhörer", 50.00), einLebensmittel("Kaffee", 10.00, "2027-03-01")und einenGutschein(20.00)enthält. Geben Sie für jeden Schleifendurchlauf die aufgerufene Methode und das Zwischenergebnis an. 4 BE - Erläutern Sie, warum
gesamtpreis()nicht geändert werden muss, wenn der Shop später eine KlasseBuch(ebenfalls 7 %) ergänzt. 4 BE
Summe: 17 BE
Hinweise
Hinweis zu Aufgabe a)
Das hohle Dreieck zeigt zur Oberklasse. Frage: Wer darf
nettopreis lesen?Hinweis zu Aufgabe b)
Kopf mit
extends, Konstruktor mit super(…) als erster Anweisung, dann getPreis() überschreiben.Hinweis zu Aufgabe c)
Welche
getPreis() läuft, entscheidet das Objekt im jeweiligen Listenplatz.Hinweis zu Aufgabe d)
Welchen Typ haben die Listenelemente, und welche Methode ruft die Schleife auf?
