Quando defino o saldo chamando "conta2._saldo = 30000" o saldo é alterado e não recebo a mensagem de que ele só possui um acessor getter.
Quando defino o saldo chamando "conta2._saldo = 30000" o saldo é alterado e não recebo a mensagem de que ele só possui um acessor getter.
import {Cliente} from "./Cliente.js"; import {contaCorrente} from "./contaCorrente.js";
const cliente1 = new Cliente(); cliente1.nome = "Ricardo"; cliente1.cpf = 11122233309;
const cliente2 = new Cliente(); cliente2.nome = "Alice"; cliente2.cpf = 88822233309
const conta1 = new contaCorrente(); conta1.agencia = 1001; conta1.cliente = cliente1; conta1.depositar(500); conta1.sacar(300);
const conta2 = new contaCorrente(); conta2.agencia = 102; conta2.cliente = cliente2;
conta1.transferir(200, conta2);
conta2._saldo = 30000 console.log(conta2);
import { Cliente } from "./Cliente.js";
export class contaCorrente { agencia; _cliente;
set cliente(novoValor) {
if(novoValor instanceof Cliente){
this._cliente = novoValor;
}
}
get cliente() {
return this._cliente;
}
saldo = 0;
get saldo() {
return this._saldo;
}
sacar(valor) {
if(this._saldo >= valor){
this._saldo -= valor;
return valor
}
}
depositar(valor) {
if(valor > 0){
this._saldo += valor;
return valor
}
}
transferir(valor, conta) {
const valorSacado = this.sacar(valor);
conta.depositar(valorSacado);
}
}
Olá, Niágara, tudo bem?
O problema é que na sua classe contaCorrente
, você definiu a propriedade saldo
sem o underline _
, assim:
saldo = 0;
Então utilizando a convenção, devemos declará-la assim:
_saldo = 0;
E apenas o getter terá o nome saldo
, sem o underline _
.
A mensagem de erro que aparece ao tentar alterar o saldo da conta aparece se você escrever um comando como conta2.saldo = 30000
, com o saldo
sem underline, ou seja, quando tentamos alterar o getter.
Se você executar conta2._saldo = 30000
, a propriedade privada (por convenção) realmente será alterada, e por esse motivo o instrutor diz que não devemos utilizá-las fora de suas classes.
Espero ter ajudado! Abraços e bons estudos :)
Ah perfeito!! Muito obrigada :)