Só estou recebendo como retorno isso: Saldo Total: 0.0 Segue meu código:
class Conta { // classe Conta();
//private double saldo; // Atributo saldo;
protected double saldo; // Saldo deve ser protegido por protected pois as classe extendidas terão acesso a seus dados.
public double getSaldo() { // Metodo para poder acessar o saldo;
return this.saldo;
}
public void deposita(double valor) { // Metodo para deposito;
this.saldo += valor;
}
public void saca(double valor) { // Metodo para saque;
this.saldo -= valor;
}
public void atualiza(double taxa) { // Metodo para atualizar a conta de acordo com uma taxa percentual fornecida.
this.saldo += this.saldo * taxa; // saldo recebe saldo * taxa.
}
}
class ContaCorrente extends Conta {
public void atualiza(double taxa) { // Metodo para atualizar a conta de acordo com uma taxa percentual fornecida.
this.saldo += this.saldo * taxa * 2; // saldo recebe saldo * taxa. na conta corrente deve ser o dobro;
}
}
class ContaPoupanca extends Conta {
public void atualiza(double taxa) { // Metodo para atualizar a conta de acordo com uma taxa percentual fornecida.
this.saldo += this.saldo * taxa * 3; // saldo recebe saldo * taxa. na cpoupañça deve ser o triplo.
}
public void deposita(double valor) { // metodo de deposito para poupanaça deve ser diferente do mesmo metodo em conta porque se cobra uma taxa de 10 centavos.
this.saldo += valor - 0.10; // o saldo recebe valor Menos 10 centavos.
}
}
class AtualizadorDeContas { // classe que atualiza todas as contas e gera relatorio com saldo anterior e atual de cada conta.
private double saldoTotal = 0; // atributo que guarda todo o dinheiro do banco foi atualizado.
public double getSaldoTotal() {
return this.saldoTotal;
}
private double selic;
public AtualizadorDeContas(double selic) { // construtor atualizadordecontas.
this.selic = selic;
}
public void roda(Conta c) { // metodo para atualização e geração de relatorios das contas
System.out.println("===============================");
System.out.println("Saldo anterior: " + c.getSaldo()); // imprime o saldo anterior
c.atualiza(this.selic); // atualiza a conta com a taxa selic,
System.out.println("Saldo atualizado: " + c.getSaldo()); // e depois imprime o saldo final
this.saldoTotal += c.getSaldo(); // lembrando de somar o saldo final ao atributo saldoTotal
}
}
class TestaConta { // classe "Programa";
public static void main(String[] args) {
Conta c = new Conta(); // Iniciando conta. Digo que conta é c e recebe uma nova conta();
Conta cc = new ContaCorrente(); // Iniciando contacorrente. digo que contacorrente é cc e que recebe uma nova contacorrente();
Conta cp = new ContaPoupanca(); // iniciando a contaPoupança. Digo que ContaPoupanca é cp e que recebe uma nova contapoupanca();
c.deposita(1000); // setando o valor do deposito na conta.
cc.deposita(1000); // setando o valor do deposito na contacorrente.
cp.deposita(1000); // setando o valor de deposito na poupança.
c.atualiza(0.01); // Setando o valor da taxa de atualização da conta.
cc.atualiza(0.01); // Setando o valor da taxa de atualização da contacorrente.
cp.atualiza(0.01); // Setando o valor da taxa de atualização da contapoupança.
System.out.println(c.getSaldo());
System.out.println(cc.getSaldo());
System.out.println(cp.getSaldo());
}
}
class TestaAtualizadorDeContas { // classe para testar os atualizadores de contas.
public static void main(String[] args) {
Conta c = new Conta();
Conta cc = new ContaCorrente();
Conta cp = new ContaPoupanca();
AtualizadorDeContas adc = new AtualizadorDeContas(0.01);
c.deposita(1000);
cc.deposita(1000);
cp.deposita(1000);
System.out.println("Saldo Total: " + adc.getSaldoTotal());
}
}