Olá, fiquei com uma dúvida a respeito da soma que é aacumulação das 3 bonificações: de Gerente, Funcionario e Editor de Video, que deveriam ser respectivamente, 5250.0, 100.0 e 225. Assim, a soma deveria ser 5575 e não 5475. Ou não? Obrigado
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, fiquei com uma dúvida a respeito da soma que é aacumulação das 3 bonificações: de Gerente, Funcionario e Editor de Video, que deveriam ser respectivamente, 5250.0, 100.0 e 225. Assim, a soma deveria ser 5575 e não 5475. Ou não? Obrigado
Oi Alexandre, só com os valores complica um pouco para a gente dar uma opinião. Consegue colocar seu código aqui?
sugestão de alteração para a classe testa referencias... na classe ControleBonificacao crie o metodo para limpar a soma
public void limpaSoma() {
this.soma = 0;
pelo que entendi a cada registro de bonificação, a classe ControleBonificação estava somando a bonificação anterior... assim o ultimo registro que seria do editor de video tinha a soma da bonificação do gerente...
inclua esse metodo de limpar antes de chamar o registra gerente ou editor de video
public static void main(String[] args) {
ControleBonificacao controle = new ControleBonificacao();
Funcionario f = new Funcionario();
f.setSalario(2000.0);
controle.registra(f); //funcionario recebe 5% do salario
System.out.println("Salario funcionario: R$" +f.getSalario());
System.out.println("Bonificação funcionario: R$" +controle.getSoma());
Gerente g1 = new Gerente();
g1.setNome("Marcos");
g1.setSalario(5000.0);
controle.limpaSoma();//gerente recebe 5% de bonif por ser funcionario + o valor do salario dele
controle.registra(g1);
System.out.println("Salario gerente: R$" +g1.getSalario());
System.out.println("Bonificação gerente: R$" +controle.getSoma());
EditorVideo ev = new EditorVideo();
ev.setSalario(2500.0);
controle.limpaSoma();//editor video recebe 5% de bonif por ser funcionario +100
controle.registra(ev);
System.out.println("Salario editor video: R$" +ev.getSalario());
System.out.println("bonificação editor video: R$" +controle.getSoma());
Oi Alexandre,
vc tem razao, há uma diferença na bonificação, e o valor correta seria: R$ 5575,00
No entanto, o problema é outro. No video, por volta das 8min, eu estou criando um objeto do tipo EditorVideo, mas não estou inicializando o salario dele, pois uso ainda a referencia do Funcionario:
EditorVideo ev = new EditorVideo();
f.setSalario(2500.0); //aqui está errado, pois uso f
Tudo bem? Vou ver se podemos corrigir isso na edição.
Obrigado por relatar.
Abs, Nico
Oi Alexandre,
Caso a resposta do Nico não tenha sido clara, vou tentar explicar um pouco melhor.
Provavelmente você estava seguindo os passos que o professor estava passando no vídeo, porém, no vídeo "Aplicando Polimorfismo" no exato momento 7:30m, o professor cria um instancia da classe EditorVideo na variável "ev", porém, na hora de setar o salário, ele errou e setou na variável "f". Por isso a soma total não bate corretamente.