Fala Queren, tudo certinho?
Nesse caso, como a bonificação de um funcionário é pré-determinada como uma regra de negócio, precisamos apenas do método getter, que vai nos retornar o valor da bonificação calculada. No caso de implementarmos o método setter, vamos permitir que a bonificação seja alterada durante a execução do programa, o que poderia ser considerada uma má prática de encapsulamento.
Vamos imaginar que ao implementar o método setter, alguém em algum ponto do código implemente essa linha:
funcionario.setBonificacao(100000000);
O objeto funcionario agora vai receber uma bonificação muito grande, que não condiz com as regras de negócio da empresa, o que é um comportamento indesejado.
Em suma, quando queremos apenas acessar um valor, seja ele fixo, como um atributo do objeto, ou calculado, como é o caso da bonificação, utilizamos um método acessor, ou getter. O método setter é utilizado apenas quando queremos que um atributo possa ser alterado em outros lugares do código, ao não ser a própria classe, que pelo encapsulamento, deve ser responsável pelas alterações que ocorrem em seu interior.
Em caso de dúvidas, estou à disposição.
Um grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!