Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 7 da Aula 1 - Herança, reescrita e polimorfismo

Pessoal, preciso de ajuda...

o valor do meu codigo imprime com os valores zerados, e não como mostra no exercicio:

segue código:

public class Conta{
    protected double saldo;

    public double getSaldo(){
        return this.saldo;
    }

    public void deposita(double valor) {
        this.saldo += valor;
    }

    public void saca (double valor){
        this.saldo -= valor;
    }

    public void atualiza(double taxa){
        this.saldo += this.saldo * taxa;
    }

}

class TestaContas {
     public static void main (String[] args){
         Conta c = new Conta();
         Conta cc = new ContaCorrente();
         Conta cp = new ContaPoupanca();

         c.deposita(1000);
         cc.deposita(1000);
         cp.deposita(1000);

         c.atualiza(0.01);
         cc.atualiza(0.01);
         cp.atualiza(0.01);

         System.out.println(c.getSaldo());
         System.out.println(cc.getSaldo());
         System.out.println(cp.getSaldo());


     }
 }

 class AtualizadorDeContas extends Conta{
     private double saldoTotal= 0;
     private double selic;

    public  AtualizadorDeContas(double selic){
        this.selic = selic;
    }

    public void roda (Conta c){
        System.out.println("===============");
        System.out.println("Saldo anterior " + getSaldo());
        c.atualiza(this.selic);
        System.out.println("Saldo Atual " + getSaldo());
        this.saldoTotal += c.getSaldo();
    }

    public double getTotalSaldo(){
        return this.saldo;
    }

            public static void main(String[] args) {
                Conta c = new Conta();
                Conta cc = new ContaCorrente();
                Conta cp = new ContaPoupanca();

                c.deposita(1000); 
                cc.deposita(1000); 
                cp.deposita(1000);

                AtualizadorDeContas adc = new AtualizadorDeContas(0.01);

                adc.roda(c);
                adc.roda(cc);
                adc.roda(cp);

                System.out.println("Saldo Total: " + adc.getTotalSaldo());
            }


 }

alguma dica?

2 respostas
solução!

Anderson,

parece que o seu método "getTotalSaldo" está retornando o valor da variável errada. Veja que está retornando saldo ao invés de saldoTotal.

Tente trocar para isso:

public double getTotalSaldo(){
        return this.saldoTotal;
}

Bons estudos.

Valeu mais uma vez Djonathan!

Abraços!