Depósitos e Saques
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 22 de 56.
Desafio
Em seguida, adicionamos a funcionalidade de transação à sua classe BankAccount implementando os métodos deposit() e withdraw().
Sua tarefa é adicionar esses dois novos métodos à classe BankAccount:
1. <strong>deposit(amount)</strong> método:
- Verifica se o
amounté positivo (maior que 0) - Se for válido:
- Adiciona o valor ao
balance - Registra exatamente:
Deposited ${amount}
- Adiciona o valor ao
- Se for inválido: Registra exatamente:
Invalid deposit amount
2. <strong>withdraw(amount)</strong> método:
- Verifica se o
amounté positivo E menor ou igual aobalanceatual - Se for válido:
- Subtrai o valor do
balance - Registra exatamente:
Withdrew ${amount}
- Subtrai o valor do
- Se for inválido: Registra exatamente:
Invalid withdrawal amount or insufficient funds
Experimente você mesmo
import { BankAccount } from './bankAccount.js';
// Testar a implementação
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Logs: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Logs: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Logs: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Logs: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição