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"
import { ContaPoupança } from "./ContaPoupança.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"
let numeroDeContas = 0
const cliente1 = new Cliente("Ricardo", 8232131322, 21302139012)
const cliente2 = new Cliente("Alice", 23013012312, 2139139819)
const contaCorrenteRicardo = new ContaCorrente(0, cliente1, 102)
contaCorrenteRicardo.depositar(500)
contaCorrenteRicardo.sacar(200)
const conta2 = new ContaCorrente(cliente2, 102);
const contaPoupança = new ContaPoupança(50, cliente1, 1010)
contaPoupança.sacar(20)
const conta = new Conta(1, cliente1, 1002)
console.log(Conta)
///////console.log(ContaCorrente.numeroDeContas)
//nao precisamos mais dessas linhas por conta do construtor que usamos para polpar codigo
//cliente1.nome = "Ricardo"
//cliente1.cpf = 11122233345
//cliente1.rg = 2131231231
//contaCorrenteRicardo.agencia = 1001;
//contaCorrenteRicardo.cliente = cliente1;
//numeroDeContas++
//ContaCorrenteRicardo.agencia = 1001
//ContaCorrenteRicardo.cliente = cliente1
//ContaCorrenteRicardo.depositar(1000)
//numeroDeContas++
//cliente2.nome = ;
//cliente2.cpf = 88822233309;
//conta2.cliente = cliente2;
//conta2.agencia = 102;
//Se nao colocarmos o return.valor na logica do contacorrente vamos ter um erro "Undefined"
//const pessoa = {
// Nome: "William",
// Idade: 19
//}
//
////os 3 pontos ... serve para juntar o codigo passado com o nome sem que fique na cara que eles estao em linhas diferentes, ele quebra a lista e junta com outra lista, fazendo com que duas listas virem apenas uma
//
//const pessoaComTelefone = {...pessoa, Telefone: 2020202020,}
//
////console.log(pessoaComTelefone)
//
//
////Ele pega a variavel nome da lista de pessoa
////const {O que voce quer que ele pegue} = de onde vocee quer que ele pegue
//const {Nome} = pessoa
//const {Telefone} = pessoaComTelefone
//
////console.log(Nome)
//
//imprimeDados(pessoa, pessoaComTelefone)
//
//function imprimeDados({Nome, Idade, pessoaComTelefone}){
// //Podemos imprimir só o que queremos usando o que aorendemos, const { o que queremos imprimir } = de onde
// console.log(Nome, Idade, Telefone)
//}
//
//
Conta.js
export class Conta{
constructor(saldoInicial, cliente, agencia){
this._saldo = saldoInicial
this._cliente = cliente
this._agencia = agencia
//Para evitar que criem contas na index
if(this.constructor == Conta){
console.log("Você não pode cirar contas aqui")
}
}
sacar(valor){
//Vamos adicionar uma taxa no valor
let taxa = 1
return this._sacar(valor, taxa)
}
_sacar(valor, taxa){
const valorSacado = taxa * 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 valorSacado
}else{
console.log("Você não tem saldo suficiente para sacar")
return 0;
}
}
depositar(valor){
if(valor <= 0){
//return faz o codigo parar, ele para de ler depois que a função for verdadeira
return
//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
}
this._saldo += valor
}
transferir(valor, conta){
conta.cidade = "Sergipe"
const valorSacado = this.sacar(valor)
conta.depositar(valorSacado)
//Para fazer com que não possamos transferir o dinhiuero de uma conta salario use o return
//if(this._tipo == "salario"){
// return
//}
}
}
Ele ja está definido, não entendi o porque do erro