Einstieg - Verwaltung von Bankkonten
Verwaltung des Kontoinhabers
Die Daten des Kontoinhabers sollen jetzt ebenfalls mitverwaltet werden. Mehrere Vorschläge stehen zur Diskussion:
Aufgabe 1
Vergleiche die folgenden Vorschläge. Warum ist Vorschlag 2 im Sinne der Modularisierung wohl günstiger?
Vorschlag 1:
Vorschlag 2:
Aufgabe 2
Welche Nachteile zeigen sich bei Vorschlag 2, wenn es mehrere Konten und mehrere Kunden gibt? Vergleiche Vorschlag 2 auch mit Vorschlag 3.
Vorschlag 2:
Vorschlag 3:
Implementierung in Python
Der folgende Quelltext zeigt die Implementierung der beiden Klassen Konto
und Kunde
passend zum Vorschlag 3. Wir gehen im Folgenden davon aus, dass diese Klassen in einer Datei bank0.py
gespeichert sind.
class Konto(object):
def __init__(self, nummer):
self.nr = nummer
self.stand = 0.0
self.inhaber = None
def einzahlen(self, betrag):
self.stand = self.stand + betrag
def auszahlen(self, betrag):
self.stand = self.stand - betrag
class Kunde(object):
def __init__(self, name, vorname):
self.name = name
self.vorname = vorname
Aufgabe 3
Analysiere das folgende Testprogramm und erkläre, wie die Objektkonstellation aus Vorschlag 3 hier realisiert wird. Stell auch eine Vermutung auf, was das Testprogramm auf dem Bildschirm ausgibt.
from bank0 import *
# Erzeugung der Objekte
konto1 = Konto(5)
konto2 = Konto(11)
konto2.einzahlen(200.0)
kunde1 = Kunde("Müller", "Adriana")
kunde2 = Kunde("Meier", "Anatol")
konto1.inhaber = kunde2
konto2.inhaber = kunde1
# Ausgaben
print("Kontonummer: ", konto1.nr)
print("Inhaber(in): ", konto1.inhaber.vorname, konto1.inhaber.name)
print("Kontostand: ", konto1.stand)
print()
print("Kontonummer: ", konto2.nr)
print("Inhaber(in): ", konto2.inhaber.vorname, konto2.inhaber.name)
print("Kontostand: ", konto2.stand)
Aufgabe 4
Erweitere das Testprogramm aus Aufgabe 3 so, dass Adriana Müller Inhaberin eines weiteren Kontos ist.