Récapitulatif - Gestionnaire de compte bancaire
Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy — leçon 14 sur 87.
Défi
FacileConstruisons un système BankAccount complet qui rassemble tout ce que vous avez appris sur l'encapsulation, les modificateurs d'accès, les getters, les setters et le mot-clé final.
Vous allez créer deux fichiers pour organiser votre code :
BankAccount.java: Concevez une classe de compte bancaire sécurisée qui protège les données financières sensibles :- Un numéro de compte immuable qui ne peut jamais changer une fois le compte créé
- Un solde privé qui commence à 0.0 et ne peut être modifié que par des méthodes contrôlées
- Un nom de propriétaire privé qui peut être récupéré mais pas modifié directement
- Un constructeur qui prend le numéro de compte et le nom du propriétaire
- Un getter pour le numéro de compte
- Un getter pour le nom du propriétaire
- Un getter pour le solde
- Une méthode
deposit(double amount)qui ajoute au solde uniquement si le montant est positif, retournanttrueen cas de succès oufalses'il est rejeté - Une méthode
withdraw(double amount)qui soustrait du solde uniquement si le montant est positif ET que les fonds sont suffisants, retournanttrueen cas de succès oufalses'il est rejeté - Une méthode
getAccountSummary()qui retourne :"Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]"(solde formaté à 2 décimales)
Main.java: Créez un BankAccount et effectuez une série de transactions. Vous recevrez cinq entrées : le numéro de compte, le nom du propriétaire, le montant du dépôt, le montant du premier retrait et le montant du deuxième retrait. Affichez quatre lignes :- Le résultat du dépôt :
Deposit: trueouDeposit: false - Le résultat du premier retrait :
Withdraw 1: trueouWithdraw 1: false - Le résultat du deuxième retrait :
Withdraw 2: trueouWithdraw 2: false - Le résumé final du compte
- Le résultat du dépôt :
Vous recevrez cinq entrées dans l'ordre : accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).
Pour formater le solde à 2 décimales, vous pouvez utiliser String.format("%.2f", balance).
Essayez vous-même
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Lire les entrées
String accountNumber = scanner.nextLine();
String ownerName = scanner.nextLine();
double depositAmount = scanner.nextDouble();
double withdrawAmount1 = scanner.nextDouble();
double withdrawAmount2 = scanner.nextDouble();
// TODO: Créer un objet BankAccount avec accountNumber et ownerName
// TODO: Effectuer le dépôt et afficher le résultat sous la forme "Deposit: true" ou "Deposit: false"
// TODO: Effectuer le premier retrait et afficher le résultat sous la forme "Withdraw 1: true" ou "Withdraw 1: false"
// TODO: Effectuer le deuxième retrait et afficher le résultat sous la forme "Withdraw 2: true" ou "Withdraw 2: false"
// TODO: Afficher le résumé du compte
}
}
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe mot-clé thisMéthodesChamps (Attributs)Méthode constructeurSurcharge de constructeurRécapitulatif - Calculatrice simple4Héritage
Héritage de base (extends)Le mot-clé superRedéfinition de méthode (@Override)Chaînage de constructeursLa classe ObjectHéritage simple et multiniveauPourquoi pas d'héritage multiple de classesRécapitulatif - Hiérarchie des employés7Méthodes spéciales et classe Object
Méthode toString()equals() et hashCode()Méthode clone()compareTo() et ComparableInterface ComparatorRécapitulatif - Tri personnalisé2Modificateurs d'accès et Encapsulation
Aperçu des niveaux d'accèsMéthodes Getter et SetterMasquage d'informationsLe mot-clé finalRécapitulatif - Gestionnaire de compte bancaire5Polymorphisme
Bases de la surcharge de méthodesRedéfinition de méthodes (Run-Time)Upcasting et DowncastingL'opérateur instanceofClasses et méthodes abstraitesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageAgrégation vs CompositionClasses internes, imbriquées et anonymesEnums et méthodes d'EnumRecords (Java 16+)Classes scellées (Java 17+)11Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FabriquePatron MonteurPatron ObservateurPatron Stratégie3Propriétés de classe et membres statiques
Variables d'instance vs variables statiquesMéthodes statiquesBlocs statiquesConstantes (static final)Récapitulatif - Compteur et utilitaire6Interfaces et Classes Abstraites
Introduction aux InterfacesImplémentation d'InterfacesImplémentation d'Interfaces MultiplesDefault et Static dans les InterfacesClasses Abstraites vs InterfacesInterfaces FonctionnellesRécapitulatif - Système de Paiement9La généricité
Introduction à la généricitéClasses génériquesMéthodes génériquesParamètres de type bornésWildcards (?, extends, super)Récapitulatif - Conteneur générique12Patrons de conception, partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Template MethodPatron ÉtatPatron CompositePatron Itérateur