Quando chamo contaCorrente1.sacar(50); , esse valor nao está sendo retirado da conta corrente.
import { ContaPoupanca } from "./ContaPoupanca.js";
import { ContaCorrente } from "./ContaCorrente.js";
import { Cliente } from "./Cliente.js";
const cliente1 = new Cliente("Isabella", 11122233344); //novo cliente
const contaCorrente1 = new ContaCorrente(0, cliente1, 1001); //nova conta corrente
const contaPoupanca1 = new ContaPoupanca(2000, cliente1, 1001); //nova conta poupança
contaCorrente1.depositar(500); //testando transações
contaCorrente1.sacar(50); //testando transações
console.log(contaPoupanca1);
console.log(contaCorrente1);
export class Conta {
//------------------------------------------------
// Definindo propriedades já no construtor
constructor(saldoInicial, cliente, agencia){
this.saldo = saldoInicial;
this.cliente = cliente;
this.agencia = agencia;
}
//------------------------------------------------
// Métodos:
sacar(valor){ // ---- parte do código de "sacar" que mudará, de acordo com a "classe filho".
let taxa = 1;
return this._sacar(valor, taxa);
}
// método privado (_) ---- codigo geral do "sacar"
_sacar(valor, taxa){
const valorSacado = taxa * valor;
if(this.saldo >= valorSacado){
this.saldo -= valorSacado;
return valorSacado;
}
return 0;
}
depositar(valor){
if(valor <= 0){
return; // se valor for negativo, não faz nada;
}
this.saldo += valor;
}
tranferir(valor, conta){
const valorSacado = this.sacar(valor);
conta.depositar(valorSacado);
}
}
import { Conta } from "./Conta.js";
export class ContaCorrente extends Conta{ //HERANÇA: Pega tudo de "Conta"
//------------------------------------------------
// Contabilizar contas correntes
static numeroDeContasCorrentes = 0;
//------------------------------------------------
// Definindo propriedades no construtor
constructor(cliente, agencia){
super (0, cliente, agencia); //Como pegar as propriedades da "classe mãe"
ContaCorrente.numeroDeContasCorrentes += 1;
}
sacar(valor){
let taxa = 1.1;
return this._sacar();
}
}