ContaCorrente.js
export class ContaCorrente{
//a # deve ser colocada dentro da class e alterada em todo o codigo
cliente
agencia
#saldo = 0
//adicionando função para evitar repétições no saque e deposito, ()para ser operação
sacar(valor){
//ao inves de usar contacorrente.nomedapessoa, vamos usar this para falar que é "This, dessa conta"
if(this.#saldo > valor){
this.#saldo -= valor
//return faz o codigo parar, ele para de ler depois que a função for verdadeira
//podiamos substituir o código por if()
return valor
}else{
console.log("Você não tem saldo suficiente para sacar")
}
}
transferir (valor, conta) {
const valorSacado = this.sacar(valor);
conta.depositar(valorSacado)
}
depositar(valor){
if(valor => 0){
//return faz o codigo parar, ele para de ler depois que a função for verdadeira
//podiamos substituir o código por if(valor <= 0) return, o inverso da função ja que se ela fosse verdadeira o codigo parava de funcionar, o return esta vazio porque ele nao deve retornar um valor, somente parar o código
this.#saldo += valor
console.log(this.#saldo)
}else{
console.log("Não é possivel adicionar saldo negativo")
}
}
}
index.js
// para ser uma proposta PRIVADA use # antes de classe !!!!!!!! ou use o _ na frnte da classe
//para evitar repeticções usando a const use a class e coloque dentro o conteudo
//Separamos em módulos para ficar mais organizado, eles sempre começam com letras maiusculas
//agora vamos importar o arquivo aqui
import{Cliente} from "./Cliente.js"
import{ContaCorrente} from "./ContaCorrente.js"
//Para resolver o erro SyntaxError: Cannot use import statement outside a module use no terminao "npm init"
//para usar a class use new "o nome da class"
const cliente1 = new Cliente()
cliente1.nome = "Ricardo"
cliente1.cpf = 11122233345
cliente1.rg = 2131231231
const cliente2 = new Cliente()
cliente2.nome = "Alice"
cliente2.cpf = 11122234545
cliente2.agencia = 102
cliente2.rg = 123213123
const conta2 = new Cliente()
conta2.cliente = cliente2
const ContaCorrenteRicardo = new ContaCorrente
ContaCorrenteRicardo.agencia = 1001
ContaCorrenteRicardo.cliente = cliente1
ContaCorrenteRicardo.depositar(500)
//Se nao colocarmos o return.valor na logica do contacorrente vamos ter um erro "Undefined"
const valorSacado = ContaCorrenteRicardo.sacar(110)
let valorSacar = 200
console.log(valorSacado)
console.log(ContaCorrenteRicardo)
ContaCorrenteRicardo.transferir(200, conta2)
console.log(conta2)
Cliente.js
//Para poderem usar o codigo em outros arquivos adicionamos export na antes das classes
export class Cliente{
nome;
cpf;
rg;
}