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

Método que recebe a Referência de uma Classe? Estou Confuso

Olá. Boa tarde. Estou um pouco confuso:

Geralmente nós criamos métodos que recebem como referência um simples Atributo, por exemplo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Só que agora no método "autentica", recebe uma referência "FuncionarioAutenticavel fa":

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeIsso agora me pegou um pouco, sei que já vimos antes. Mas bugou um pouco minha mente agora.

Tem alguma explicação simples pra isso? Por que colocamos "FuncionarioAutenticavel fa", qual o sentido de ter "FuncionarioAutenticavel" lá dentro dos parênteses?

Talvez eu descarrilhei um pouco na curva de aprendizagem.

2 respostas
solução!

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!

Valeuu cara. Perfeito. Muito grato. :D