Rückblick – Bankkontoverwaltung
Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy. Lektion 14 von 87.
Aufgabe
EinfachLass uns ein vollständiges BankAccount-System erstellen, das alles zusammenführt, was du über Kapselung, Zugriffsmodifikatoren, Getter, Setter und das Schlüsselwort final gelernt hast.
Du wirst zwei Dateien erstellen, um deinen Code zu organisieren:
BankAccount.java: Entwirf eine sichere Bankkonto-Klasse, die sensible Finanzdaten schützt:- Eine unveränderliche Kontonummer, die sich nach der Erstellung des Kontos niemals ändern kann
- Ein privates Guthaben, das bei 0.0 beginnt und nur durch kontrollierte Methoden geändert werden kann
- Einen privaten Namen des Kontoinhabers, der abgerufen, aber nicht direkt geändert werden kann
- Einen Konstruktor, der die Kontonummer und den Namen des Kontoinhabers entgegennimmt
- Einen Getter für die Kontonummer
- Einen Getter für den Namen des Kontoinhabers
- Einen Getter für das Guthaben
- Eine
deposit(double amount)-Methode, die das Guthaben nur erhöht, wenn der Betrag positiv ist, und bei Erfolgtrueoder bei Ablehnungfalsezurückgibt - Eine
withdraw(double amount)-Methode, die das Guthaben nur verringert, wenn der Betrag positiv ist UND ausreichende Geldmittel vorhanden sind, und bei Erfolgtrueoder bei Ablehnungfalsezurückgibt - Eine
getAccountSummary()-Methode, die Folgendes zurückgibt:"Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]"(das Guthaben auf 2 Dezimalstellen formatiert)
Main.java: Erstelle ein BankAccount und führe eine Reihe von Transaktionen durch. Du erhältst fünf Eingaben: Kontonummer, Name des Kontoinhabers, Einzahlungsbetrag, ersten Abhebungsbetrag und zweiten Abhebungsbetrag. Gib vier Zeilen aus:- Das Ergebnis der Einzahlung:
Deposit: trueoderDeposit: false - Das Ergebnis der ersten Abhebung:
Withdraw 1: trueoderWithdraw 1: false - Das Ergebnis der zweiten Abhebung:
Withdraw 2: trueoderWithdraw 2: false - Die abschließende Kontozusammenfassung
- Das Ergebnis der Einzahlung:
Du erhältst fünf Eingaben in dieser Reihenfolge: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).
Um das Guthaben auf 2 Dezimalstellen zu formatieren, kannst du 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 Schlüsselwort thisMethodenFelder (Attribute)KonstruktormethodeÜberladen von KonstruktorenRückblick – Einfacher Taschenrechner4Vererbung
Grundlegende Vererbung (extends)Das Schlüsselwort superÜberschreiben von Methoden (@Override)KonstruktorverkettungDie Object-KlasseEinfach- und mehrstufige VererbungWarum keine Mehrfachvererbung von KlassenRückblick – Mitarbeiterhierarchie7Spezielle Methoden & Object-Klasse
toString()-Methodeequals() und hashCode()clone()-MethodecompareTo() und ComparableComparator-SchnittstelleRückblick – Benutzerdefinierte Sortierung2Zugriffsmodifikatoren & Kapselung
Übersicht der ZugriffsebenenGetter- und Setter-MethodenInformationsverbergungDas Schlüsselwort finalRückblick – Bankkontoverwaltung5Polymorphismus
Grundlagen der MethodenüberladungMethodenüberschreibung (Laufzeit)Upcasting und DowncastingDer instanceof-OperatorAbstrakte Klassen und MethodenRückblick – Formrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungAggregation vs. KompositionInnere, verschachtelte & anonyme KlassenEnums und Enum-MethodenRecords (Java 16+)Versiegelte Klassen (Java 17+)11Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterBuilder-MusterObserver-MusterStrategie-Muster14Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungsdienst3Klassen-Props & statische Member
Instanz- vs. statische VariablenStatische MethodenStatische BlöckeKonstanten (static final)Wiederholung – Counter & Utility6Schnittstellen & abstrakte Klassen
Einführung in InterfacesInterfaces implementierenMehrere Interfaces implementierenDefault & Static in InterfacesAbstrakte Klassen vs. InterfacesFunktionale InterfacesRückblick – ZahlungssystemÜbe selbstständig: Online-Java-Compiler