Olá desenvolvedores, em introdução a interfaces começamos com um o pouco de teoria. Onde tentamos elucidar alguns conceitos de forma a simplificar o entendimento acerca das interface. Vimos então que as interfaces permitem que classes que não estão relacionadas implementem um conjunto de métodos comuns.
Aprendemos que elas podem ser compostas por zero ou mais métodos sem escopo (apenas com a assinatura). Assim como por zero ou mais variáveis. E que interfaces funcionam como uma espécie de contrato, onde quem assina assume a responsabilidade de implementá-la.
Ainda em um contexto teórico, ficou evidenciado no referido tutorial que as interfaces expões o que o objeto deve fazer, mas não como ele deve fazer. Assim sendo, o como fazer deverá ser definido na implementação dessa interface em outra classe.
Uma vez tendo recapitulado importantes conceitos acerca das interfaces, vamos a implementação.
IMPLEMENTANDO A CLASSE INTERFACES
O primeiro passo visa manter a organização do código, dessa forma começaremos criando um package o qual daremos o nome de cursoJava.Interfaces.
Agora segue um passo diferente do estamos habituados para a criação de uma classe. Antes fazíamos botão contexto do mouse sobre o pacote >> new>> classes. Dessa vez no lugar de class optaremos por Interface.
Na janela New Java Interface defina o nome da interface, no caso, escolhemos PermitirAcesso.
A declaração de uma interface a distingue das demais pelo uso da palavra reservada interface. Assim, tendo declarado a interface, eis que temos o nosso contrato. Dessa forma, no corpo da interface escreveremos somente a assinatura (declaração) do método. Que compreende uma regra de autenticação a partir da qual poderemos implementar as permissões de acesso.
Mais a frente você entenderá que só teremos que retornar sim ou não. Mas poderíamos sim retornar, por exemplo uma lista. E neste caso, a tipagem da declaração do método seria outra.
Lembrando que o objetivo proposto é esconder esta rotina de implementação do aluno e do professor. Dessa forma somente quem é autorizado terá a permissão de acesso, ou seja, somente o secretário.
IMPLEMENTAÇÃO DO MÉTODO
Deste modo teremos que alterar a assinatura da classe secretário adicionando a palavra reservada implements apontando para PermitirAcesso. Veja abaixo o exemplo.
Observe que a própria IDE nos obriga a implementação do método autenticar, acusando um erro.
Dessa forma clicando sobre o ícone do alerta veremos que ele nos sugere a adição do método. E é o que faremos, clique em Add unimplemented methods.
Automaticamente o método será criado e adicionado ao final do bloco de instrução. E por padrão, retornando “false”.
Mas para que essa permissão de acesso funcione o secretário precisar ter um usuário e senha. Para isso criaremos dois novos atributos para o secretario login e senha. Gere o setters and getters para ambos atributos.
Private String login;
Private String senha;
E seguindo sempre a nossa premissa de primeiro trabalharmos com os conceitos simples e de fácil entendimento. Isto para que você possa compreender como as coisas de fato acontecem. Dessa forma implementaremos a autenticação do secretário no próprio return.
Agora o que o método retorna é um “true”. Uma vez que ambas as condições precisam ser verdadeiras para que a autenticação possa ser validade e o secretário ter acesso ao sistema.
O passo seguinte é a implementação da permissão de acesso na classe principal, onde anteriormente implementamos uma permissão que autoriza todas as Pessoas. Vamos restringir ao secretário esta permissão.
Instancie um objeto do tipo “Secretario”, atribua a ele o login e a senha, com mostramos no exemplo.
Secretario secretario = new Secretario();
secretario.setLogin(login);
secretario.setSenha(senha);
Dentro da instrução de seleção, alteraremos a condição chamando o método autenticar que somente o secretário pode enxergar.
if(secretario.autenticar()){
//bloco de instruções
}
Ao final do if, escreva uma mensagem para o usuário caso as credencias de acesso não sejam válidas.
else{
JOptionPane.ShowMessageDialog(null, "ACESSO NEGADO, LOGIN OU SENHA INVÁLIDOS()");
}
EM POUCAS PALAVRAS
Espero que agora o conceito de interfaces tenha de uma vez por todas ficado claro. É um conceito que nos exige um pouco mais, porém, com todo o conhecimento assimilado até o momento tenho certeza que você não encontrou dificuldades.
Mas em caso de dúvida, reveja as aulas, volte aos tutoriais, peça ajuda da nossa grande comunidade. E claro conte comigo e com toda a equipe da JDev Treinamentos.