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

[Dúvida] Método getSoma();

Pessoal fiquei com uma dúvida sobre o método getSoma da classe ControleBonificacao.

ControleBonificacao controle = new ControleBonificacao();
        controle.registra(g);
        controle.registra(f);
        controle.registra(ev);

        System.out.println(controle.getSoma());

Quando é invocado o método, ele vai guardando na variável "soma" o valor de cada objeto? Por isso ele apresenta a soma total dos três? É nisso que fiquei em dúvida, o método getSoma é o mesmo para Gerente, Funcionario e EditorVideo, quando ele vai executar o retorno como sabe que tem que somar?

Obrigada!

2 respostas
solução!

Olá Yasmin, tudo bem com você? Espero que sim...

Para que possamos entender o que está acontecendo no seu trecho de códigos, vamos aprofundar, e entender o que está acontecendo nas entrelinhas.

  • A sua classe ControleBonificacao possui pelo menos 2 métodos e 1 atribulto, vou replica-la aqui
public class ControleBonificacao {
    private double totalBonificacao;

    public void registra(double valorBonificacao) {
        this.totalBonificacao += valorBonificacao;
    }

    private double getSoma() {
        return this.totalBonificacao;
    }
}

Essa classe então, tem um atributo que guardará os valores das bonificações através do método registra.

E para recuperarmos esse valor, utilizei um método getSoma, que poderia ou não ter o mesmo nome que a variável no qual os valores ficarão armazenados, geralmente é o que acontece, mas optei por explicar dessa forma, para que não tenha dúvidas do que está acontecendo.

O método registra, deve receber um valor como argumento, para que ele possa guarda-lo dentro do atributo totalBonificacao.

De forma abstraída podemos dizer que você esta pegando a bonificação do funcionário g, f, ev.

Funcionario gerenteYasmin = new Gerente();
Funcionario programadorLucas = new Programador();
Funcionario editorNico = new Editor();

double g =  gerenteYasmin.getBonificacao();
double f = programadorLucas.getBonificacao();
double ev = editorNico.getBonificacao();

ControleBonificacao controle = new ControleBonificacao();
controle.registra(g);
controle.registra(f);
controle.registra(ev);

System.out.println(controle.getSoma());

Então supondo que o valor de g = 100, de f = 200 e de ev = 300

Na primeira vez que você chamou o método, foi adicionado o valor de 100 ao atributo privado da classe, que aqui no nosso exemplo é totalBonificacao, na segunda vez o atributo valia 100 e adicionamos mais 200, nesse ponto o totalBonificacao vale 300, e por último invocamos o método registra mais uma vez que realiza mais uma somatória ao atributo da classe, dessa vez temos 300 do valor pré existente das outras chamadas, + 300 do valor atual da chamada do método, totalizando 600.

Nas sequência apenas utilizamos o método getSoma para recuperar, buscar, ler o valor que está dentro da variável do atributo.

Faça os testes, experimente, não tenha medo de errar.

Espero ter ajudado a esclarecer sua dúvida. Se tiver mais alguma questão, é só perguntar!

Uma ótima semana e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado . Bons Estudos

Olá Lucas, estou bem e você como está?

Que excelente explicação. Muito obrigada viu!!