Zum Inhalt springen

Aufgabe 13 - Das sichere Konto

Zu Zen-Modus wechseln

Kapselung praktisch: Ein Bankkonto, dessen Saldo niemand direkt manipulieren kann, sondern nur über kontrollierte Methoden erreicht (siehe Kapitel OOP II - Datenkapselung).

In dieser Übung üben Sie:

  • Kapseln: private Felder (#) einsetzen.
  • Schützen: Invarianten mit Validierung durchsetzen.
  • Anbieten: eine saubere öffentliche Schnittstelle gestalten.
  • VS Code, Browser-Konsole.
  1. Schreiben Sie zunächst KontoUnsicher mit öffentlichem Feld saldo.
  2. Demonstrieren Sie in drei Zeilen, was alles erlaubt ist, aber nicht sein dürfte (negativer Saldo direkt setzen, Text zuweisen, Saldo “vergessen”).

Schreiben Sie Konto mit privatem Feld #saldo und:

  1. einzahlen(betrag): nur positive Beträge; sonst Fehlermeldung, Zustand unverändert.
  2. abheben(betrag): nur positive Beträge und nur, wenn gedeckt (kein Überziehen).
  3. Getter saldo: Lesen erlaubt, Schreiben nicht. Zeigen Sie, dass konto.saldo = 1000000 wirkungslos bleibt bzw. scheitert.
  4. #pruefeBetrag(betrag): private Hilfsmethode, die beide öffentlichen Methoden verwenden.
  1. Protokollieren Sie intern jede erfolgreiche Buchung (privates Array #buchungen mit Betrag und Art).
  2. auszug(): gibt alle Buchungen und den Endsaldo formatiert aus.
  3. Warum darf #buchungen auf keinen Fall öffentlich sein? Antwort als Kommentar, mit einem konkreten Missbrauchsbeispiel.

konto.js mit beiden Klassen, einem Demo-Skript (mind. je zwei gültige und ungültige Operationen) und den Antworten.