Não consigo entender a necessidade da variável 'private double soma', na aula 02 Aplicando Polimorfismo. Alguém pode me ajudar por favor?
Não consigo entender a necessidade da variável 'private double soma', na aula 02 Aplicando Polimorfismo. Alguém pode me ajudar por favor?
Olá Luan, tudo bem?
Acredito que a variável que você se refere é do seguinte trecho de código certo?
public class ControleBonificacao {
private double soma;
public void registra(Funcionario f) {
double boni = f.getBonificacao();
this.soma = this.soma + boni;
}
public double getSoma() {
return soma;
}
}
De uma forma resumida, essa variável vai receber a soma das bonificações.
Quando no arquivo TesteReferencias
nós criamos instancias de Gerente
, Funcionario
e EditorVideo
, colocamos salários para eles certo?
Com base no salário deles é calculada a bonificação individual de cada um. O gerente recebe 1 salário, o funcionário recebe 5% e o editor de vídeo 100 reais. Isso significa que toda vez que a gente usar controle.registra()
vamos estar incrementando aquela variável soma.
No código da aula:
public class TesteReferencias {
public static void main(String[] args) {
Gerente g1 = new Gerente();
g1.setNome("Felipe");
g1.setSalario(5000.90);
Funcionario f1 = new Funcionario();
f1.setNome("Nicolas");
f1.setSalario(3500.99);
EditorVideo ev = new EditorVideo();
ev.setNome("Eduarda");
ev.setSalario(2500.50);
ControleBonificacao controle = new ControleBonificacao();
controle.registra(g1);
controle.registra(f1);
controle.registra(ev);
System.out.println(controle.getSoma());
}
}
Veja, quando executamos essas 3 linhas de código, estamos pegando a bonificação de cada funcionário e incrementando naquela variável soma
.
controle.registra(g1); // Incrementa em soma a bonificação do gerente (que é 1 salário de 5000).
controle.registra(f1); // Incrementa em soma a bonificação do funcionário genérico (que é 5%).
controle.registra(ev); // Incrementa em soma a bonificação do editor de vídeo (que é de 100 reais).
No final, nos usamos o método getSoma()
que imprime todos os valores incrementados a variável soma:
System.out.println(controle.getSoma());
Espero que minha explicação tenha ficado mais claro. Forte abraço e bons estudos!