1
resposta

Metodo de bonificação: retorno do teste

Pessoal estou com duvida com relação ao retorno esperado do teste, se era este mesmo. Vou colocar os códigos aqui, mas estranhei nao retornar o valor de cada bonificação em separado. Era este o resultado esperado?

Funcionário


public class Funcionario {
    private String nome;
    private String cpf;
    private double salario;


    public String getNome() {
        return nome;
    }

    public double getBeneficio() {
        return this.salario * 0.1;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getCpf() {
        return cpf;
    }
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }
    public double getSalario() {
        return salario;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }




}

Gerente


public class Gerente extends Funcionario {
    private int senha;

    public boolean autentica(int senha){
        if (this.senha == senha) {
        return true;
        } else {
            return false;
        }

    }

    public double getBeneficio() {
        return super.getSalario() + super.getBeneficio() ;
    }


    public void setSenha(int senha) {
        this.senha = senha;
    }

}

Controle de Bonificação (utilizei beneficio como palavra chave)

public class ControleBonificacao {
    private double soma;

    public void registra(Funcionario f) {
        this.soma += f.getBeneficio() ;
    }

    public double getSoma() {
        return soma;
    }    
}

Editor de Vídeo


public class EditorVideo extends Funcionario {

    public double getBeneficio(){
        System.out.println("Chamando método de bonificação do EDITOR DE VIDEO");
    return 150;
    }

}

Designer

public class Designer extends Funcionario {

            public double getBeneficio(){
                System.out.println("Chamando método de bonificação do DESIGNER");
            return 200;
            }
    }

Teste da referência

public class TesteReferencia {

    public static void main(String[] args) {
        Funcionario f = new Funcionario();
        Funcionario g1 = new Gerente();
        Funcionario ev1 = new EditorVideo();
        Funcionario d1 = new Designer();
        ControleBonificacao controle = new ControleBonificacao();

        g1.setSalario(1000.0);
        ev1.setSalario(2000.0);
        d1.setSalario(3000.0);
        f.setSalario(500.0);
        controle.registra(d1);
        controle.registra(ev1);
        controle.registra(g1);
        controle.registra(f);

        System.out.println("Total de bonificação R$ " + controle.getSoma());

    }
}

Retorno ao rodar: Chamando método de bonificação do DESIGNER Chamando método de bonificação do EDITOR DE VIDEO Total de bonificação R$ 1500.0

Era este o retorno esperado? Sinto que errei em algo, e o ideal era que tivesse aqui o valor de bonificação de cada um...

1 resposta

Oie Andréia, tudo bem contigo?

O seu código está correto sim! Nesse exercício o objetivo é calcular o total da bonificação de todos os funcionários, ou seja, somar todas as bonificações dos objetos que você criou. Fiz aqui o cálculo e a soma daria R$ 1500.00, e o seu código também deu, então sim, o código está correto.

Espero ter ajudado!

Continue assim e bons estudos :)