2
respostas

Porque a soma do total das contas não está dando correto no meu exemplo

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

Qual é a linha? Aqui no fórum não aparece a marcação.. vc quer dizer que é um erro? Só pergunto pq não vi nenhum código que soma...

Eu acho que faltou o código da classe AtualizadorDeContas, pois o problema poderia estar nessa classe. Posta aqui pra gente dar uma olhada e ver se consegue te ajudar.