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

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

===============================

Saldo anterior: 1000.0

Saldo atualizado: 1000.0

===============================

Saldo anterior: 1000.0

Saldo atualizado: 1000.0

===============================

Saldo anterior: 999.9

Saldo atualizado: 999.9

*Os meus valores ficaram diferentes , segue abaixo as main e as classes

TestaContas

package Heranca;

public class TestaContas {

    public static void main (String [] args){

        Conta c = new Conta();
        ContaCorrente cc = new ContaCorrente();
        ContaPoupanca cp = new ContaPoupanca();


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


        AtualizadorDeContas x = new AtualizadorDeContas();

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


        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()); 


        System.out.println("Saldo Total: " + x.getSaldoTotal());
    }

}

Conta

package Heranca;

public class Conta {

   private     int numero;
   private    Agencia agencia;
   protected     double saldo;
   private    String titular;
   private    Banco banco;

    public void setSaldo(double saldo){
        this.saldo = saldo;

    }

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

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

    }

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



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

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

    }

Atualizado De Contas

package Heranca;

public class AtualizadorDeContas extends Conta {

    private double saldoTotal = 0;
    private double selic;


    public void AtualizaConta(double selic){
        this.selic = selic;

    }



     public void roda(Conta c) {
            System.out.println("===============================");

            System.out.println("Saldo anterior: " + c.getSaldo());

            c.atualiza(this.selic);

            System.out.println("Saldo atualizado: " + c.getSaldo());

            this.saldoTotal += c.getSaldo();
        }

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

    public void  saldoAtualizado (double saldoAtual){

        saldoTotal += saldoAtual;
    }

    public double getSaldoAtualizado(){
        return this.saldoTotal;

    }

}

Conta Corrente

package Heranca;

public class ContaCorrente extends Conta{


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


}

Conta Poupança

package Heranca;

public class ContaPoupanca extends Conta{


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



    public void deposita (double quantidade){
        this.saldo = (saldo + quantidade) - 0.10;
    }



}
2 respostas
solução!

Oi Anderson,

O problema é que você não criou o construtor para a classe AtualizadorDeContas e por isso sua taxa está zerada. Você deve passar a taxa no construtor da classe no momento que você instanciar o objeto:

AtualizadorDeContas atc = new AtualizadorDeContas(0.01);

E criar o construtor na classe pois você acabou criando um método chamado AtualizaConta ao invés do construtor.

public void AtualizaConta(double selic){
        this.selic = selic;
}

Abraço!

Obrigado !!!! Joviane