Olá Ian, tudo certo?
A essência de usar uma referência como parâmetro de função é a mesma de utilizar um tipo primitivo: usamos quando queremos realizar uma rotina de operações. No caso de um tipo primitivo, ocorre a passagem por valor, onde a função vai só receber um valor, copiá-lo e fazer a manipulação dentro da função, sem alterar a variável inicial, caso ela exista.
Já na passagem de parâmetro por referência, as alterações feitas no objeto recebido, dentro da função, afetam o objeto original. Ao contrário da passagem por valor, a passagem por referência aponta na memória onde está o objeto passado, e por este motivo todas as mudanças ficam salvas dentro do objeto.
No exemplo dado, existe uma classe SistemaInterno
, que fica responsável por funções como o login de funcionários que sejam autenticáveis. Essa classe é responsável pelo sistema de login e, por este motivo, ela que deve implementar o método de autenticação.
Ao passar um objeto do tipo FuncionarioAutenticavel
como parâmetro, é possível dentro do método autentica()
acessar os métodos e atributos de visibilidade publica presentes em FuncionarioAutenticavel
. Isso possibilita com que nós consigamos chamar o método autentica()
do Funcionário, para verificar se o usuário e senha estão corretos.
Portanto, utilizamos referências a objetos como parâmetros de métodos quando queremos:
- Alterar o objeto de alguma maneira
- Utilizar seus comportamentos (métodos) ou atributos, desde que tenham visibilidade suficiente para serem usados.
Em geral, é muito útil utilizar referências para objetos em métodos dentro do mundo Java, acontece o tempo inteiro!
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!