Einstieg - Verwaltung von Bankkonten
Sparkonto
Ein Sparkonto ist ein Konto, bei dem das eingezahlte Geld mit einem bestimmten, mit der Bank vereinbarten Zinssatz verzinst wird. Das folgende Klassendiagramm zeigt ein Sparkonto im Vergleich zu einem normalen
Konto.

Aufgabe 1
(a) Vergleiche die Klassendiagramme und kläre folgende Fragen: Unterscheiden sich die Klassen in den Attributen? Unterscheiden sich die Klassen in den Methoden?
(b) Überleg dir, ob sich bestimmte Methoden evtl. anders verhalten. Beachte, dass man das den Klassendiagrammen nicht entnehmen kann. Hinweis: Welche Regelungen gibt es bei Auszahlungen von einem Sparkonto?
Aufgabe 2
Implementiere die Klasse Sparkonto
. Welche Teile einer Implementierung der Klasse Konto
kann man übernehmen?
Hinweis zur Implementierung der Methode zinsenGutschreiben
: Eine Implementierung, die den Vorgängen in der realen Bankwelt entspricht, ist nicht einfach, da man Zeiträume mit bestimmten Kontoständen genau erfassen müsse. Wir vereinfachen unser Modell daher wie folgt: Eine Zinsberechnung bezieht sich immer auf ein Jahr und wir gehen davon aus, dass der Kontostand sich während dieser Zeit nicht ändert. Ein- und Auszahlungen auf das Sparkonto werden immer genau zu den Jahresanfängen gemacht.
Sparkonto als spezielles Konto
Die oben gezeigten Klassendiagramme weisen mehr Gemeinsamkeiten als Unterschiede auf. Ein Sparkonto kann als spezielles Konto angesehen werden, das - im Vergleich zu einem herkömmlichen
Konto - nur in einigen Bestandteilen abgeändert worden ist. Das folgende Klassendiagramm soll diesen Zusammenhang verdeutlichen.

Ein Sparkonto verfügt über alle Attribute eines Kontos. Hinzu kommt noch ein Attribut zinssatz
zur Verwaltung des vereinbarten Zinssatzes und ein Attribut maxAuszahlung
zur Verwaltung des maximalen Auszahlungsbetrags.
Der Konstruktor __init__
der Klasse Sparkonto
unterscheidet sich vom Konstruktor Klasse Konto
. Beim Sparkonto wird bei der Erzeugung z.B. der maximale Auszahlungsbetrag festgelegt.
Die Methoden einzahlen
ist in der Beschreibung der Klasse Sparkonto
nicht aufgeführt, da sie von der Klasse Konto
übernommen wird und in der Beschreibung der der Klasse Konto
bereits vorkommt.
Die Methoden auszahlen
ist dagegen in der Beschreibung der Klasse Sparkonto
aufgeführt, da diese Methode etwas anders implementiert werden muss als die entsprechende Methode der Klasse Konto
.
Die Klasse Sparkonto
verfügt zusätzlich über die Methode zinsenGutschreiben
.
Bei der Implementierung dieser Klassen gehen wir von der Implementierung eines herkömmlichen Kontos aus und ergänzen eine Deklaration der Klasse Sparkonto
.
Aufgabe 3
Analysiere zunächst die Implementierung der Klasse Sparkonto
. Kannst du alle Festlegungen erklären?
Aufgabe 4
Speichere die Klassendeklarationen in einem neuen Modul sparkonto.py
ab und teste sie mit Python-Dialogen der folgenden Art oder entsprechenden Testprogrammen.