i

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:

Objektdiagramm

Vorschlag 2:

Objektdiagramm

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:

Objektdiagramm

Vorschlag 3:

Objektdiagramm

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.

Suche

v
7.2.3.5.1
dev.inf-schule.de/oop/python/bank/beziehungen/einstieg_konto
dev.inf-schule.de/7.2.3.5.1
dev.inf-schule.de/@/page/18SieihLmDMyhNEJ

Rückmeldung geben