4
respostas

Demonstrando a bonificação individual , totalizando no final.

public class ControleBonificacao {

    private double unitario;// bonificação de cada funcionario
    private double soma;

    public void registra(Funcionario f){
        double boni = f.getBonificacao();
        //System.out.println(boni);// mostra a bonificação de cada um
        unitario = boni;
        this.soma = this.soma + boni;
    }

    public double getSoma(){
        return soma;
    }

    public double getUnitario(){
        return unitario;
    }
}
import java.text.NumberFormat;

public class Testereferencias {

    public static void main(String[] args) {

         Gerente  g1 = new Gerente();
         g1.setNome("Marcos");
         g1.setSalario(5000.0);

         Funcionario f = new Funcionario();
         f.setSalario(2000.0);

         EditorVideo ev = new EditorVideo();
         ev.setSalario(2500.0);

         ControleBonificacao controle = new ControleBonificacao();
         controle.registra(g1);
         System.out.println("Bonificação do Gerente: " + NumberFormat.getCurrencyInstance().format(controle.getUnitario()));
         controle.registra(f);
         System.out.println("Bonificação do Funcionário: " + NumberFormat.getCurrencyInstance().format(controle.getUnitario()));
         controle.registra(ev);
         System.out.println("Bonificação do Editor de Vídeo: " + NumberFormat.getCurrencyInstance().format(controle.getUnitario()));
         System.out.println("");
         System.out.println("Bonificação TOTAL : " + NumberFormat.getCurrencyInstance().format(controle.getSoma()));
    }

}
4 respostas

Fala Daniella, tudo certo?

Muito bom! A herança e o polimorfismo acrescentam diversas maneiras de resolver problemas de maneira mais elegante, não é mesmo? Uma dica que pode ser interessante: em vários momentos nos seus System.out.println(), acaba tendo o método formatador que ocupa bastante espaço e deixa o código bem verboso. Que tal criar uma classe FormatadorNumerico e encapsular esse método para que o código fique mais sucinto? Algo como formatador.formataReal(controle.getUnitario())!

Claro que é completamente opcional e seu código funciona super bem, é apenas uma sugestão que pode deixá-lo ainda mais elegante!

Parabéns pela dedicação! Um grande abraço e bons estudos!

Arthur, boa tarde.

Muito obrigado pela dica, vou te dizer que foi um pequeno desafio para mim, mas acho que consegui:

import java.text.NumberFormat;

public class Formatando {

    String numeroFormatado;

    public String getNumeroFormatado(double valor) {
        return this.numeroFormatado = NumberFormat.getCurrencyInstance().format(valor);
    }

}

public class Testereferencias {

public static void main(String[] args) {

     Gerente  g1 = new Gerente();
     g1.setNome("Marcos");
     g1.setSalario(5000.0);

     EditorVideo ev = new EditorVideo();
     ev.setSalario(2500.0);

     Designer d = new Designer();
     d.setSalario(2000.0);

     ControleBonificacao controle = new ControleBonificacao();
     controle.registra(g1);

     Formatando fr = new Formatando();


     System.out.println("Bonificação do Gerente: " + fr.getNumeroFormatado(controle.getUnitario()));
     controle.registra(ev);
     System.out.println("Bonificação do Editor de Vídeo: " + fr.getNumeroFormatado(controle.getUnitario()));
     controle.registra(d);
     System.out.println("Bonificação do Designer: " + fr.getNumeroFormatado(controle.getUnitario()));
     System.out.println("-------------------------------");
     System.out.println("Bonificação TOTAL : " + fr.getNumeroFormatado(controle.getSoma()));
}

}

Fala Daniella!

Show demais! Era exatamente isso que sugeri! Com uma classe formatadora, passamos a abrir mais possibilidades para formatar valores, imagine se for necessário em algum momento adicionar outros tipos de formatação? Basta adicionar a essa classe um novo método com a lógica necessária! Além disso, o código fica bem mais expressivo e de mais fácil compreensão!

Parabéns pela dedicação, ficou muito bom!

Um grande abraço e bons estudos!

Arthur, novamente muito obrigado, é um incentivo enorme as observações de vocês. Foi ótimo eu ter feito desse jeito, pois que acredito que isso será muito útil no Challenge.