index.js
import { cliente } from "./Cliente.js";
import { contaCorrente } from "./ContaCorrente.js";
const cliente1 = new cliente();
cliente1.nome = "Arthur";
cliente1.cpf = 15146738799;
const cliente2 = new cliente();
cliente2.nome = "Alice";
cliente2.cpf = 15167738799;
const contaCorrenteArthur = new contaCorrente();
contaCorrenteArthur._saldo = 0;
contaCorrenteArthur.agencia = 1001;
contaCorrenteArthur.cliente = cliente1;
contaCorrenteArthur.depositar(500);
const conta2= new contaCorrente();
conta2._saldo = 0;
conta2.cliente = cliente2;
conta2.agencia = 102;
conta2.depositar(200);
contaCorrenteArthur.transferir(200 , conta2)
console.log(contaCorrenteArthur);
console.log(conta2);
Cliente.js
export class cliente {
nome;
cpf;
}
ContaCorrente.js
export class contaCorrente {
agencia;
cliente;
_saldo;
sacar(valor) {
if ( this.saldo >= valor) {
this._saldo -= valor;
return valor;
}
}
depositar(valor) {
if (valor <= 0) return; // tecnica early return para n ter codigos enormes com vaiors if's grandes pode se fazer as condições ja com interrupções;
this._saldo += valor;
}
transferir(valor, conta){
const valorSacado = this.sacar(valor);
conta.depositar(valorSacado);
}
}
package.json
{
"name": "bytebank",
"version": "1.0.0",
"description": "projeto bytebank para clientes",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Arthur",
"license": "ISC",
"type": "module"
}
porem no terminal a transferencia não occorre e o saldo da conta dois é exibido como NaN
terminal
byteBank.js> node .\index.js
contaCorrente {
agencia: 1001,
cliente: cliente { nome: 'Arthur', cpf: 15146738799 },
_saldo: 500
}
contaCorrente {
agencia: 102,
cliente: cliente { nome: 'Alice', cpf: 15167738799 },
_saldo: NaN
}