Menu
Coddy logo textTech

Resumen - Gestor de cuentas bancarias

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 22 de 110.

challenge icon

Desafío

Fácil

Vamos a construir un sistema de gestión de cuentas bancarias que reúna todos los conceptos de propiedades de clase que has aprendido en este capítulo. Crearás un sistema que rastrea los datos de las cuentas individuales y, al mismo tiempo, mantiene estadísticas de todo el banco.

Organizarás tu código en dos archivos:

  • bank_account.dart: Define una clase BankAccount que gestione cuentas individuales y rastree las estadísticas generales del banco. Tu clase debe incluir:
    • Un final String accountNumber que no puede cambiar después de la creación
    • Un String holderName para el nombre del titular de la cuenta
    • Un campo privado double _balance que comience en 0.0
    • Un static int totalAccounts que comience en 0 para rastrear cuántas cuentas existen
    • Un static double totalDeposits que comience en 0.0 para rastrear todos los depósitos realizados en todo el banco
    • Un constructor que tome accountNumber y holderName, e incremente totalAccounts
    • Un getter balance que devuelva el saldo actual
    • Un método deposit(double amount) que sume al saldo solo si el monto es positivo, y también sume a totalDeposits cuando tenga éxito
    • Un método withdraw(double amount) que reste del saldo solo si el monto es positivo y no excede el saldo actual
    • Un método displayInfo() que imprima los detalles de la cuenta
    • Un método estático getBankStats() que devuelva una cadena con las estadísticas de todo el banco
  • main.dart: Importa tu clase de cuenta bancaria y demuestra el sistema:
    • Crea una cuenta con el número 'ACC001' para 'Alice'
    • Crea una cuenta con el número 'ACC002' para 'Bob'
    • Deposita 500.0 en la cuenta de Alice
    • Deposita 300.0 en la cuenta de Bob
    • Retira 150.0 de la cuenta de Alice
    • Intenta retirar 1000.0 de la cuenta de Bob (debe ignorarse - fondos insuficientes)
    • Intenta depositar -50.0 en la cuenta de Alice (debe ignorarse - monto negativo)
    • Llama a displayInfo() en la cuenta de Alice, luego en la cuenta de Bob
    • Imprime las estadísticas del banco usando BankAccount.getBankStats()

El método displayInfo() debe imprimir en este formato:

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

El método getBankStats() debe devolver:

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

Salida esperada:

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

Pruébalo tú mismo

import 'bank_account.dart';

void main() {
  // TODO: Crear una cuenta con el número 'ACC001' para 'Alice'
  
  // TODO: Crear una cuenta con el número 'ACC002' para 'Bob'
  
  // TODO: Depositar 500.0 en la cuenta de Alice
  
  // TODO: Depositar 300.0 en la cuenta de Bob
  
  // TODO: Retirar 150.0 de la cuenta de Alice
  
  // TODO: Intentar retirar 1000.0 de la cuenta de Bob (debe ser ignorado)
  
  // TODO: Intentar depositar -50.0 en la cuenta de Alice (debe ser ignorado)
  
  // TODO: Llamar a displayInfo() en la cuenta de Alice
  
  // TODO: Llamar a displayInfo() en la cuenta de Bob
  
  // TODO: Imprimir las estadísticas bancarias usando BankAccount.getBankStats()
}

Todas las lecciones de Programación Orientada a Objetos