3
respostas

Dúvida sobre o método atualiza. Java II: Orientação a Objetos

O método atualiza da classe conta.

public abstract  class Conta {

    protected double saldo;

//outros métodos

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

}

Estou na dúvida se ele deve ou não ser abstrato, sendo que agora existe a classe AtualizadorDeContas, essa classe substitui o método atualiza?

class AtualizadorDeContas {

    private double saldoTotal = 0;
    private double selic;

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

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

    }

    public double getSaldoTotal() {
        return saldoTotal;
    }
}

Agradeço desde já.

3 respostas

Oi Eduardo, a ideia é que fique na conta mesmo.. O AtualizadorDeContas só faz invocar o método.

Ola Eduardo, O AtualizadorDeContas é uma classe que tem a responsabilidade de atualizar qualquer referência a Conta (ContaCorrente, ContaPoupança...), invocando o método atualiza da classe conta.
Já o método atualiza da classe Conta tem a responsabilidade de atualizar o saldo de uma determinada conta e todas as contas que herdarem essa classe terão o mesmo comportamento se esse método não for sobrescrito. Se você tornar esse método abstract as classes filhas são obrigadas a desenvolver esse método.

O método atualizar faz parte de um CRUD?

Se for, o ideal seria criar uma interface para os métodos (inserir, atualizar, excluir, listarPorId, listarTodos).