Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Atributo soma, não recebe nenhum valor (verdadeiro) , nem dentro nem fora da classe. Não faz sentido.

Boa tarde, entendi o que o código deveria fazer, mas não faz. Pois ele deveria ter os resultados diferentes para cada função, "funcionário comum", "funcionário gerente" e "funcionário editor de video". respectivamente de acordo com a regra de cada função o total de cada um (ex.:/ no fim do mês) deveria ser 2100 reais (funcionário comum), 5500 reais (gerente) e 2755 reais (editor de video). PERGUNTA: cada um que ganha sua bonificação especifica. Certo? Mesmo assim...

Eu não entendi o seguinte. dentro da class ControleBonificacao{

private double soma; // este atributo nao tem um set, para poder receber nenhum valor que possa ser introduzido nele para que possa ser resgatado pelo get.

mais abaixo... double boni = f.getBonificacao(); this.soma = this.soma + boni;

// COMO ESTE "SOMA" PODE RECEBER ALGO, SE NÃO EXISTE UM VALOR PARA COLOCAR DENTRO DELE? E ELE NÃO É UTILIZADO FORA DESTA CLASSE PARA QUE PUDESSE SE DIZER QUE ELE RECEBEU UM VALOR DE ALGUM LUGAR? como ele pode receber a ele mesmo + alguma coisa... se ele não tem valor dentro dele?

public double getSoma{ return soma; }

}

1 resposta
solução!

Resposta ao próprio post... Gente ja entendi o que ocorre. Para caso alguém tenha a mesma dúvida, o que acontece é:

o valor inicial do atributo double soma é 0. Mas quando o primeiro objeto passa e executa o método, o atributo double soma recebe soma mais boni. Então fica assim: [soma=soma+boni] ou como no código [soma +=boni] >>>> Ou seja 0 + bonificação.

Quando o segundo objeto passa e pede a execução do MESMO método, o valor do atributo double soma ja não é mais 0, e sim o valor da bonificação do primeiro objeto que pediu a execução do método. Ele soma o valor de bonificação do primeiro objeto( que havia ficado guardado), mais o valor de bonificação do segundo objeto.

Só consegui perceber isto fazendo o seguinte:

1) fazendo um system.out.print do atributo (soma); pra ver o valor do atributo logo no inicio do bloco.

2) Mais 2 system.out.print(s) nas linhas intercaladas ao código existente abaixo para marcar o que ocorria com o valor do atributo soma a cada linha do código. Percebi ai que o valor saia de 0, ia pro valor de bonificação do primeiro objeto e depois o valor do atributo soma mudava e somava com o valor de bonificação do segundo objeto.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software