Laden Sie das Repo von github-classroom.
Setzen Sie das gezeigte Klassendiagramm schrittweise um.
Teilaufgabe 1: Klasse Person
Implementieren und testen Sie die Klasse Person
.
Die Methode print
liefert (vergleichbar) folgende Ausgabe:
Hinweise:
Teilaufgabe 2: Klasse Employee
Implementieren und testen Sie die Klasse Employee
. Sie erbt von Person
.
Hier müssen Sie sowohl den Konstruktor (__init__(…)
) als auch die Methode print()
der Oberklasse Person
aufrufen. Dazu schreiben Sie super().__init__(…)
bzw. super().print()
an. Die Parameter richten sich nach dem Konstruktor bzw. der Methode der Oberklasse!
Die Methode print
liefert (vergleichbar) folgende Ausgabe:
Hinweise:
Teilaufgabe 3: Klasse Customer
Implementieren und testen Sie die Klasse Customer
. Sie erbt von Person
.
Sie müssen auch hier den in Konstruktor und print
-Methode jeweils explizit die Funktion der Oberklasse aufrufen.
Die Methode print
liefert (vergleichbar) folgende Ausgabe:
Hinweise:
Teilaufgabe 4: Klasse RegularCustomer
Implementieren und testen Sie die Klasse RegularCustomer
. Sie erbt von Customer
.
Die Methode print
liefert (vergleichbar) folgende Ausgabe:
Teilaufgabe 5: Hauptprogramm (main)
Erstellen Sie in Der datei main.py
das Hauptprogramm.
Es erzeugt je ein Ojekt von Person
, Employee
, Customer
und RegularCustomer
und setzt noch fehlende Attribute wie z.B. das Salär.
Zu jedem Objekt wird dann die print()
-Methode ausgeführt. Das Ergbenis soll dem Screenshot vergleichbar sein.
Teilaufgabe 6: Klassen erweitern und Methoden überschreiben
Kopieren Sie das Klassendiagramm in eine Anwendung Ihrer Wahl, um dort mit der Farbe A die Methoden zu markieren, welche eine Klasse erweitern. Gibt es auch Methoden, die das Überschreiben realisieren? Wenn ja, markieren Sie diese mit einer Farbe B.
Teilaufgabe 7: OO-Technik nutzen
Die gezeigte Lösung ist nicht optimal. Wie aus dem Klassendiagramm (siehe Ausschnitt) ersichtlich ist, hat der Kunde (Customer
) unbeschränkt Zuriff auf die Methoden des Mitarbeiters (Employee
). Das ist so sicher nicht im Sinne des Mitarbeiters, denn es wäre z.B. sein Lohn durch jeden Kunden einsehbar.
Suchen Sie nach einer Lösung dieses Problems, das sich durch die statische Struktur der Anwendung realisieren lässt!
Es geht also nicht darum, hier mit einem Passwort oder ähnlichen Sicherheitsmechanismen den Zugriff zu überwachen, sondern darum, eine Lösung unter Anwendung der OO-Technik zu realisieren.
2-4 Stunden