No último exercício o totalizador na linha 15 da classe TestaConta.java descrito abaixo, não entendi o porque a somatória das contas não está de acordo com a realidade.
class TestaConta {
public static void main(String[] args) {
AtualizadorDeContas atualizaConta = new AtualizadorDeContas(0.01);
Conta conta = new Conta();
ContaCorrente contac = new ContaCorrente();
ContaPoupanca contap = new ContaPoupanca();
conta.deposita(1000);
atualizaConta.roda(conta);
contac.deposita(1000);
atualizaConta.roda(contac);
contap.deposita(1000);
atualizaConta.roda(contap);
System.out.println("Total de todas as contas atualizados: "+atualizaConta.GetSaldoTotal());
/*
System.out.println(conta.GetSaldo());
System.out.println(contac.GetSaldo());
System.out.println(contap.GetSaldo());
conta.atualiza(0.01);
contac.atualiza(0.01);
contap.atualiza(0.01);
System.out.println(conta.GetSaldo());
System.out.println(contac.GetSaldo());
System.out.println(contap.GetSaldo());
conta.GetSaldo();
System.out.println("Saldo: "+conta.GetSaldo());
conta.saca(400);
conta.deposita(500);
System.out.println("Saldo: "+conta.GetSaldo());
conta.saca(100);
System.out.println("Saldo: "+conta.GetSaldo());
conta.atualiza(0.2);
System.out.println("Saldo: "+conta.GetSaldo()); */
}
}
// Classe Conta()
class Conta {
protected double saldo=0;
public double GetSaldo() {
return this.saldo;
};
public boolean deposita(double valor) {
if (valor > 0){
this.saldo +=valor;
System.out.println("Depósito efetuado com sucesso!");
return true;
}else {
System.out.println("Depósito inválido");
return false;
}
}
public boolean saca(double valor) {
if (valor <= this.saldo){
this.saldo -=valor;
System.out.println("Saque efetuado com sucesso!");
return true;
}else {
System.out.println("Saque inválido!");
return false;
}
}
public void atualiza(double taxa) {
this.saldo +=(this.saldo * taxa);
System.out.println("Saldo Atualizado com sucesso!");
}
}
// Classe ContaPoupanca()
class ContaPoupanca extends Conta {
public void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 3;
}
public boolean deposita(double valor) {
this.saldo += valor - 0.10;
return true;
}
}
//Classe ContaCorrente()
class ContaCorrente extends Conta {
public void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 2;
}
}