Menu
Coddy logo textTech

Riepilogo - Gestore di conti bancari

Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 22 di 110.

challenge icon

Sfida

Facile

Creiamo un sistema di gestione dei conti bancari che riunisce tutti i concetti relativi alle proprietà delle classi che hai imparato in questo capitolo. Creerai un sistema che tiene traccia dei dati dei singoli conti e, allo stesso tempo, mantiene le statistiche dell'intera banca.

Organizzerai il codice in due file:

  • bank_account.dart: Definisci una classe BankAccount che gestisca i singoli conti e tenga traccia delle statistiche complessive della banca. La classe deve includere:
    • Un final String accountNumber che non può cambiare dopo la creazione
    • Un String holderName per il nome del titolare del conto
    • Un campo privato double _balance che parte da 0.0
    • Un static int totalAccounts che parte da 0 per tenere traccia del numero di conti esistenti
    • Un static double totalDeposits che parte da 0.0 per tenere traccia di tutti i depositi effettuati in banca
    • Un costruttore che accetta accountNumber e holderName e incrementa totalAccounts
    • Un getter balance che restituisce il saldo attuale
    • Un metodo deposit(double amount) che aggiunge al saldo solo se l'importo è positivo e, in caso di successo, aggiunge anche a totalDeposits
    • Un metodo withdraw(double amount) che sottrae dal saldo solo se l'importo è positivo e non supera il saldo attuale
    • Un metodo displayInfo() che stampa i dettagli del conto
    • Un metodo statico getBankStats() che restituisce una stringa con le statistiche complessive della banca
  • main.dart: Importa la classe del conto bancario e mostra come funziona il sistema:
    • Crea un conto con numero 'ACC001' per 'Alice'
    • Crea un conto con numero 'ACC002' per 'Bob'
    • Deposita 500.0 sul conto di Alice
    • Deposita 300.0 sul conto di Bob
    • Preleva 150.0 dal conto di Alice
    • Prova a prelevare 1000.0 dal conto di Bob (dovrebbe essere ignorato: fondi insufficienti)
    • Prova a depositare -50.0 sul conto di Alice (dovrebbe essere ignorato: importo negativo)
    • Chiama displayInfo() sul conto di Alice e poi su quello di Bob
    • Stampa le statistiche della banca usando BankAccount.getBankStats()

Il metodo displayInfo() dovrebbe stampare in questo formato:

Account [accountNumber] | Holder: [holderName] | Balance: $[balance]

Il metodo getBankStats() dovrebbe restituire:

Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]

Output previsto:

Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0

Provalo tu

import 'bank_account.dart';

void main() {
  // TODO: Crea un conto con numero 'ACC001' per 'Alice'
  
  // TODO: Crea un conto con numero 'ACC002' per 'Bob'
  
  // TODO: Deposita 500.0 sul conto di Alice
  
  // TODO: Deposita 300.0 sul conto di Bob
  
  // TODO: Preleva 150.0 dal conto di Alice
  
  // TODO: Prova a prelevare 1000.0 dal conto di Bob (l'operazione deve essere ignorata)
  
  // TODO: Prova a depositare -50.0 sul conto di Alice (l'operazione deve essere ignorata)
  
  // TODO: Chiama displayInfo() sul conto di Alice
  
  // TODO: Chiama displayInfo() sul conto di Bob
  
  // TODO: Stampa le statistiche della banca usando BankAccount.getBankStats()
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online