Rückblick – Bankkonto-Manager
Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy — Lektion 14 von 87.
Aufgabe
EinfachLassen Sie uns ein vollständiges BankAccount-System bauen, das alles zusammenführt, was Sie über Kapselung, Zugriffsmodifikatoren, Getter, Setter und das Schlüsselwort final gelernt haben.
Sie werden zwei Dateien erstellen, um Ihren Code zu organisieren:
BankAccount.java: Entwerfen Sie eine sichere Bankkontoklasse, die sensible Finanzdaten schützt:- Eine unveränderliche Kontonummer, die sich nach der Erstellung des Kontos nie mehr ändern kann
- Ein privater Kontostand (balance), der bei 0.0 beginnt und nur über kontrollierte Methoden geändert werden kann
- Ein privater Name des Eigentümers (owner name), der abgerufen, aber nicht direkt geändert werden kann
- Ein Konstruktor, der die Kontonummer und den Namen des Eigentümers entgegennimmt
- Ein Getter für die Kontonummer
- Ein Getter für den Namen des Eigentümers
- Ein Getter für den Kontostand
- Eine
deposit(double amount)-Methode, die den Betrag nur dann zum Kontostand addiert, wenn der Betrag positiv ist, undtruebei Erfolg oderfalsebei Ablehnung zurückgibt - Eine
withdraw(double amount)-Methode, die den Betrag nur dann vom Kontostand abzieht, wenn der Betrag positiv ist UND ausreichend Guthaben vorhanden ist, undtruebei Erfolg oderfalsebei Ablehnung zurückgibt - Eine
getAccountSummary()-Methode, die Folgendes zurückgibt:"Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]"(Kontostand auf 2 Dezimalstellen formatiert)
Main.java: Erstellen Sie ein BankAccount und führen Sie eine Reihe von Transaktionen durch. Sie erhalten fünf Eingaben: Kontonummer, Name des Eigentümers, Einzahlungsbetrag, erster Auszahlungsbetrag und zweiter Auszahlungsbetrag. Geben Sie vier Zeilen aus:- Das Ergebnis der Einzahlung:
Deposit: trueoderDeposit: false - Das Ergebnis der ersten Auszahlung:
Withdraw 1: trueoderWithdraw 1: false - Das Ergebnis der zweiten Auszahlung:
Withdraw 2: trueoderWithdraw 2: false - Die finale Kontozusammenfassung
- Das Ergebnis der Einzahlung:
Sie erhalten fünf Eingaben in dieser Reihenfolge: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).
Um den Kontostand auf 2 Dezimalstellen zu formatieren, können Sie String.format("%.2f", balance) verwenden.
Probier es selbst
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Eingaben lesen
String accountNumber = scanner.nextLine();
String ownerName = scanner.nextLine();
double depositAmount = scanner.nextDouble();
double withdrawAmount1 = scanner.nextDouble();
double withdrawAmount2 = scanner.nextDouble();
// TODO: Erstelle ein BankAccount-Objekt mit accountNumber und ownerName
// TODO: Führe die Einzahlung durch und gib das Ergebnis als "Deposit: true" oder "Deposit: false" aus
// TODO: Führe die erste Abhebung durch und gib das Ergebnis als "Withdraw 1: true" oder "Withdraw 1: false" aus
// TODO: Führe die zweite Abhebung durch und gib das Ergebnis als "Withdraw 2: true" oder "Withdraw 2: false" aus
// TODO: Gib die Kontozusammenfassung aus
}
}
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDas this-SchlüsselwortMethodenFelder (Attribute)Konstruktor-MethodeKonstruktor-ÜberladungRückblick – Einfacher Taschenrechner4Vererbung
Grundlagen der Vererbung (extends)Das super-SchlüsselwortMethoden überschreiben (@Override)Konstruktor-VerkettungDie Object-KlasseEinfache & mehrstufige VererbungWarum keine Mehrfachvererbung von KlassenZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden & Object-Klasse
toString()-Methodeequals() und hashCode()clone()-MethodecompareTo() und ComparableComparator-InterfaceZusammenfassung – Benutzerdefiniertes Sortieren2Zugriffsmodifikatoren & Kapselung
Überblick über ZugriffsebenenGetter- und Setter-MethodenInformation HidingDas final-SchlüsselwortRückblick – Bankkonto-Manager5Polymorphismus
Grundlagen der MethodenüberladungMethodenüberschreibung (Laufzeit)Upcasting und DowncastingDer instanceof-OperatorAbstrakte Klassen und MethodenZusammenfassung – Formenrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungAggregation vs. KompositionInnere, geschachtelte & anonyme KlassenEnums und Enum-MethodenRecords (Java 16+)Sealed Classes (Java 17+)11Design Patterns Teil 1
Einführung in Design PatternsSingleton-PatternFactory-PatternBuilder-PatternObserver-PatternStrategy-Pattern14Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung3Klasseneigenschaften & Statische Member
Instanz- vs. statische VariablenStatische MethodenStatische BlöckeKonstanten (static final)Zusammenfassung – Zähler & Utility6Interfaces & Abstrakte Klassen
Einführung in InterfacesInterfaces implementierenImplementierung mehrerer InterfacesDefault- & statische Methoden in InterfacesAbstrakte Klassen vs. InterfacesFunktionale InterfacesZusammenfassung - Zahlungssystem