Depósitos y retiros
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 22 de 56.
Desafío
A continuación, agregaremos la funcionalidad de transacciones a tu clase BankAccount implementando los métodos deposit() y withdraw().
Tu tarea es agregar estos dos nuevos métodos a la clase BankAccount:
1. Método <strong>deposit(amount)</strong>:
- Verifica si el
amountes positivo (mayor que 0) - Si es válido:
- Suma el monto al saldo (balance)
- Registra en la consola exactamente:
Deposited ${amount}
- Si no es válido: Registra en la consola exactamente:
Invalid deposit amount
2. Método <strong>withdraw(amount)</strong>:
- Verifica si el
amountes positivo Y menor o igual al saldo actual - Si es válido:
- Resta el monto del saldo (balance)
- Registra en la consola exactamente:
Withdrew ${amount}
- Si no es válido: Registra en la consola exactamente:
Invalid withdrawal amount or insufficient funds
Pruébalo tú mismo
import { BankAccount } from './bankAccount.js';
// Probar la implementación
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Registra: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Registra: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Registra: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Registra: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso