Olá desenvolvedores, no tutorial de hoje falaremos sobre interfaces e construtores, tratam-se de dois conceitos que já conhecemos. Vimos em “CONSTRUTOR DO OBJETO”, que construtor é a forma de criar um objeto na memória. Ao passo que interfaces são um recurso do Java onde classes que não estão relacionadas podem implementar um conjunto de métodos comuns.

E tanto as interfaces quanto os construtores possuem suas peculiaridades. Mas nosso objetivo ao unir os dois conceitos é apresentar a você mais uma forma de conceder permissão de acesso em um sistema.

São inúmeras as formas de implementar o polimorfismo em um sistema. Tencionamos apresentar a você as principais, dessa forma, você saberá o que fazer quando se deparar com algumas delas em sua carreira de programador. Então vamos ao primeiro passo do nosso tutorial de hoje.

IMPLEMENTAÇÃO

O nosso desafio será avançar no código, mas sem quebrar a estrutura que já temos pronta. Para isso, vamos instanciar um novo objeto para o qual passaremos por referência, login e senha. Faremos isso como sempre, na classe main.

PermitirAcesso permitirAcesso = new Secretario(login, senha);

Dessa forma alteraremos mais uma vez a condição na instrução de seleção if. Visto que o permitirAcesso continuará chamando o método autenticar(), que agora ficará sem parâmetros.

Seguindo com a implementação na interface, voltaremos com o método autenticar sem parâmetros. Atenção: Agora a interface PermitirAcesso contém duas declarações do método autenticar().

E novamente adicionaremos o método na classe secretário. Dessa forma, o método autenticar com parâmetros passará a chamar o método autenticar sem parâmetros.

TRABALHANDO COM CONSTRUTORES

Sempre que trabalhamos com construtores, é preciso avaliar a necessidade da utilização de certos atributos. Mas uma vez constatada a necessidade de tê-los, nós os criamos. Implemente também um construtor padrão que como parâmetro terá login e senha e um segundo construtor, também padrão, mas sem parâmetros.

Private String login;
Private String senha;

Mas isso não é tudo, dentro do escopo do construtor com parâmetros, teremos que indicar os atributos login e senha. O faremos por meio da palavra reservada this, onde informaremos que o login da classe será igual ao login recebido como parâmetro. O mesmo raciocínio se aplica a senha.

E para finalizar, “set” o login e a senha no método autenticar() sem parâmetros, do mesmo jeito que já fizemos.

return login.equals("admin") && senha.equals("admin");

EM POUCAS PALAVRAS

Lembre-se que no decorrer destes tutoriais estamos apresentando inúmeras formas de se trabalhar com a interface. A primeira forma foi diretamente com o objeto. Na segunda trabalhamos a interface com parâmetros. E agora estamos aprendendo a trabalhar com interfaces e construtores, caminhando para o que será a solução ótima, ou seja, a solução final.

Esta próxima solução representa um código ainda mais amarrado e consiste na criação de um método separado de autenticação. Este método receberá todos que implementam a permissão de acesso, o que nos permitirá conceder essa permissão para outras “Pessoas”.

E se você está chegando agora poderá saber mais sobre os códigos que estamos implementando aqui, no GitHub JDev Treinamento.

Então é isso, espero realmente que tenha gostado e compreendido. Nos vemos nos próximo tutorial.