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érateurEntraînez-vous par vous-même : Compilateur Java en ligne