Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m320_2024:learningunits:lu10:aufgaben:vererbung [2026/08/30 14:05] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | de:modul:m320_2024:learningunits:lu10:aufgaben:vererbung [2026/08/30 14:05] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU10.A04 - Vererbung mit vielen Facetten ====== | ||
| + | <WRAP center round todo 60%> | ||
| + | Setzen Sie verschiedene Facetten der Vererbung in einer Applikation ein. | ||
| + | </ | ||
| + | ==== Hinweise ==== | ||
| + | Diese Aufgabe umfasst viel Wissen und Können, das Sie bisher angewendet haben. | ||
| + | Schauen Sie sich die entsprechenden Ausführungen der Theorie und Übungen an! | ||
| + | ===== Auftrag ===== | ||
| + | |||
| + | |||
| + | Die Ausgaben in den Beschreibungen sind als Beispiele zu verstehen. | ||
| + | |||
| + | ==== Ausgangslage ==== | ||
| + | In [[de: | ||
| + | Die Aufgabenstellung basiert auf dem [[de: | ||
| + | |||
| + | Gegeben ist dazu das folgende Klassendiagramm. | ||
| + | |||
| + | {{de: | ||
| + | |||
| + | ===== Vorgehen Teil 1 ===== | ||
| + | |||
| + | ==== Schritt 1 ==== | ||
| + | Akzeptieren Sie das Assignment im GitHub Classroom. | ||
| + | |||
| + | Testen Sie die Klasse '' | ||
| + | |||
| + | ===== Schritt 2 ===== | ||
| + | Erstellen Sie die Exception-Klasse '' | ||
| + | |||
| + | Die Exception erwartet zwei Parameter: | ||
| + | * Die Anzahl Konten des Kunden '' | ||
| + | * Den Index des Kontos, das gelesen/ | ||
| + | Die Fehlermeldung soll wie folgt aussehen: | ||
| + | < | ||
| + | |||
| + | Um die Exception zu testen, können Sie ein einfaches Skript am Ende der Datei einfügen, z.B.: | ||
| + | |||
| + | <code python> | ||
| + | ... | ||
| + | if __name__ == ' | ||
| + | raise AccountIndexException(5, | ||
| + | </ | ||
| + | |||
| + | ==== Schritt 3 ==== | ||
| + | Erstellen Sie nun die Klasse '' | ||
| + | Debei setzen wir nun voll auf die OO-Technik. | ||
| + | Wir verwenden nämlich die Klasse '' | ||
| + | Daher muss die Klasse '' | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Die Angaben des Kunden werden aus der '' | ||
| + | * Die Angaben zu einem Konto holen wir uns über die '' | ||
| + | |||
| + | < | ||
| + | Kunde : Pia | ||
| + | Kontotyp : Standard bank account | ||
| + | Saldo: 1000.0 | ||
| + | Zins : 1.5 | ||
| + | </ | ||
| + | |||
| + | === Hinweise === | ||
| + | * Die Klasse '' | ||
| + | * Sie können diese Klasse bisher nur teilweise testen, da die Klasse '' | ||
| + | |||
| + | ==== Schritt 4 ==== | ||
| + | Erstellen Sie nun die Klasse '' | ||
| + | * Im Konstruktor muss die Methode '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Nutzen Sie die Methode '' | ||
| + | * Der Returnwert ist der geforderte Betrag oder 0, falls der Bezug nicht möglich war. | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Testen Sie die Klasse '' | ||
| + | |||
| + | ==== Schritt 5 ==== | ||
| + | Erstellen Sie nun die Klasse '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | < | ||
| + | Kunde : Pia | ||
| + | Kontotyp : Salary bank account | ||
| + | Saldo: 5000.0 | ||
| + | Zins : 2.25 | ||
| + | Überzug: 2500.0 | ||
| + | </ | ||
| + | |||
| + | Testen Sie die Klasse '' | ||
| + | |||
| + | ===== Vorgehen Teil 2 ===== | ||
| + | Implementieren Sie die '' | ||
| + | |||
| + | {{de: | ||
| + | |||
| + | * Ergänzen Sie wenn nötig den Konstruktor von '' | ||
| + | * Den Teil "money draw" im Diagramm führen Sie zwei Mal aus. | ||
| + | * Einmal mit einem Bezug von 700 | ||
| + | * Einmal mit einem Bezug von 400. | ||
| + | Hier liefert Ihnen die Methode '' | ||
| + | |||
| + | |||
| + | ==== Erwartetes Ergebnis ==== | ||
| + | Wenn Sie die Klassen gemäss Klassendiagramm und den Ablauf gemäss Sequenzdiagramm implementiert haben, sollten Sie - unter Berücksichtigung einiger erklärender '' | ||
| + | |||
| + | < | ||
| + | Angaben zu Kunde | ||
| + | Name: Pia | ||
| + | Alter: 23 | ||
| + | Adresse: Hochdorf | ||
| + | Angaben zum den Konti | ||
| + | Standard bank account | ||
| + | Salary bank account | ||
| + | |||
| + | von jedem Konto 750.0 beziehen | ||
| + | Bezug von Standard bank account | ||
| + | Saldo = 250.0 | ||
| + | Bezug von Salary bank account | ||
| + | Saldo = " 250.0 | ||
| + | Aktuelles Vermögen: 500.0 | ||
| + | |||
| + | von jedem Konto noch einmal 400.0 beziehen | ||
| + | Bezug von Standard bank account | ||
| + | Fehler: Bezug ist zu hoch für Saldo von 250.0 | ||
| + | Bezug von Salary bank account | ||
| + | Saldo = -150.0 | ||
| + | Aktuelles Vermögen: 100.0 | ||
| + | |||
| + | Ende Monat: 3000.- Lohn wird eingezahlt | ||
| + | Aktuelles Vermögen: 3100.0 | ||
| + | </ | ||
| + | ====Dauer==== | ||
| + | 3-5 Stunden | ||
| + | |||
| + | ==== Abgabe ==== | ||
| + | Als Push im GitHub Classroom | ||
| + | ---- | ||
| + | {{tag> | ||
| + | [[https:// | ||