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

Resultados diferentes

Olá , meus resultados não estão retornando como os da resposta mostrada , alguém poderia me ajudar ? Corrigi algumas coisas mas não consigo mais achar o erro Resolvi juntar o sisteminha de exemplo que o professor trabalhar junto com o proposto nos exercidos , mas abri outro aquivo com apenas as classe da Conta e retorna com os mesmo resultados (1000.01 / 1000.02 / 999.93)

package bancoaluraex;
class Funcionario {
   private String nome;
   protected double salario;
   public void setSalario(double salario){
       this.salario = salario;
   }
   public double getBonus(){
         return this.salario * 0.2;   
   }
}
class Gerente extends Funcionario {

    public double getBonus(){
        return this.salario * 0.3;
    }
    public void cobraEntrega(){
        System.out.println("Está pronto ?");
    }
}

class Desenvolvedor extends Funcionario {
    public double getBonus(){
        return this.salario * 0.25;
    }
}

class TotalizadorDeBonus {
    private double total = 0;
    public void  adiciona (Funcionario f){
        total += f.getBonus();
    }      
    public double getTotal(){
        return this.total;
    }
}
class Conta{
    protected double saldo;
    int numero;
    int agencia;
    protected double taxa;

    public double getSaldo(){
        return this.saldo;
    }
    public void Saca(double saldo){
        this.saldo -= saldo; 
    }
    public void Deposita(double saldo){
        this.saldo += saldo;
    }
    public void AttTaxa(double taxa){
        this.saldo += taxa;   
    }
}

class ContaCorrente extends Conta{
    public void AttTaxa(double taxa){
        this.saldo += taxa * 2;   
    }
}

class ContaPoupanca extends Conta{
    public void AttTaxa(double taxa){
        this.saldo += taxa * 3;   
    }
    public void Deposita(double saldo){
        this.saldo += saldo - 0.10;
    }
}
class BancoAluraEx{
    public static void main (String[] args){
        Funcionario joao = new Funcionario();
        joao.setSalario(1200);
        //System.out.println(joao.getBonus());

        Gerente joaquim = new Gerente();
        joaquim.setSalario(3000);
        //System.out.println(joaquim.getBonus());

        Desenvolvedor guilherme = new Desenvolvedor();
        guilherme.setSalario(2000);
       // System.out.println(guilherme.getBonus());

        TotalizadorDeBonus totalizador = new TotalizadorDeBonus();
        //totalizador.adiciona(joao);
        //totalizador.adiciona(joaquim);
        //totalizador.adiciona(guilherme);

        //System.out.println(totalizador.getTotal());

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

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

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

        System.out.println(c.getSaldo());
        System.out.println(cc.getSaldo());
        System.out.println(cp.getSaldo());
    }
}i
2 respostas
solução!

Opa Thiago. Então, não sei bem se entendi a sua dúvida, aparentemente seu código está correto. Você pediu pra imprimir três informações apenas no seu teste:

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

Você usa método attTaxa(0.01), que no caso vai somar esse valor ao saldo, repare que não ta multiplicando.

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

A diferença é que a conta poupança ela desconta 0,10 centavos, mas a lógica é a mesma. Talvez se você fizesse assim sairia do jeito que você quer:

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

Espero que seja essa a sua dúvida.

Oi Thiago, nos métodos atualiza que você chamou de AttTaxa teremos que somar ao saldo existente esse mesmo saldo multiplicado pela taxa ou seja ao invés de fazer:

this.saldo += taxa;

que significa:

this.saldo = this.saldo + taxa;

Deveríamos fazer assim:

 this.saldo += this.saldo * taxa;

que significa

 this.saldo =  this.saldo + this.saldo * taxa;

Meu saldo é igual ao meu saldo atual + o meu saldo * taxa;

Como esse valor é uma taxa precisamos fazer a operação dessa forma. Ajudei ?