Depositi e prelievi
Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 22 di 56.
Sfida
Ora aggiungiamo funzionalità per le transazioni alla tua classe BankAccount implementando i metodi deposit() e withdraw().
Il tuo compito è aggiungere questi due nuovi metodi alla classe BankAccount:
1. <strong>deposit(amount)</strong> metodo:
- Verifica se
amountè positivo (maggiore di 0) - Se valido:
- Aggiunge l'importo al saldo
- Registra esattamente:
Deposited $${amount}
- Se non valido: Registra esattamente:
Invalid deposit amount
2. <strong>withdraw(amount)</strong> metodo:
- Verifica se
amountè positivo E minore o uguale al saldo attuale - Se valido:
- Sottrae l'importo dal saldo
- Registra esattamente:
Withdrew $${amount}
- Se non valido: Registra esattamente:
Invalid withdrawal amount or insufficient funds
Provalo tu
import { BankAccount } from './bankAccount.js';
// Testa l'implementazione
const testAccount = new BankAccount('Alex Johnson', 500);
console.log('Initial state:');
console.log(testAccount.getAccountInfo()); // "Alex Johnson: $500"
testAccount.deposit(200); // Scrive nel log: "Deposited $200"
console.log('New balance:', testAccount.getBalance()); // 700
testAccount.deposit(-50); // Scrive nel log: "Invalid deposit amount"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
testAccount.withdraw(100); // Scrive nel log: "Withdrew $100"
console.log('New balance:', testAccount.getBalance()); // 600
testAccount.withdraw(800); // Scrive nel log: "Invalid withdrawal amount or insufficient funds"
console.log('Balance unchanged:', testAccount.getBalance()); // 600
Tutte le lezioni di Programmazione orientata agli oggetti
1Oggetti e la keyword this
Ripasso rapido: oggettiAggiungere metodi agli oggettiCapire la keyword thisFunzioni costruttriciLa keyword newSfida di ripasso7Ereditarietà e parola chiave extends
EreditarietàLa relazione «è un»La parola chiave extendsIl metodo super()Ereditare proprietà e metodiSfida di ripasso13Composizione vs. ereditarietà
«Ha-un» vs. «è-un»I limiti dell’ereditarietà profondaCostruire oggetti2Organizzare il codice
Cosa sono i moduli?Esportare con exportImportare con importExport predefiniti vs. export nominati5Incapsulamento e accesso
IncapsulamentoCampi di classe pubblici e privatiMetodi privatiSfida di riepilogo8Organizzare il codice OOP
Organizzare le classi in moduli11Progetto: Un renderizzatore di forme
Configurazione: classe Shape ed esportazioneEreditarietà della classe CircleOverride e metodo areaContatore statico di Shape14Sistema di gestione della biblioteca
Progettare la bibliotecaClasse Book con composizioneValidazione dell'autore del libroEsercitati da solo: Compilatore JavaScript online