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;
} 
             
            