Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Implementação diferente

Bom dia, estou atualmente cursando o módulo 3 do curso de Java básico, que aborda sobre herança de interface. No curso o professor implementou um método de autenticação/validação de senhas, onde a classe SistemaInterno valida a senha de instâncias do Gerente.

Minha duvida é a seguinte, no curso o professor implementou o método de autenticação do seguinte modo:

public class SistemaInterno {

        private int senha = 2222;

        public void autentica(Gerente g) {
            boolean autenticou = g.autentica(this.senha);
            if(autenticou) {
                System.out.println("Pode entrar no sistema!");
            } else {
                System.out.println("Não pode entrar no sistema!");
            }
        }
}

Gostaria de saber se eu poderia implementar o método do modo como fiz abaixo, e caso sim, quais seriam as consequências das alterações que eu fiz no código:

public class SistemaInterno {

    private int senha = 222;

    public boolean autentica(Gerente g) {
        if (g.autentica(this.senha)) {
            System.out.println("Acesso Permitido");
            return true;
        } else {
            System.out.println("Acesso Negado");
            return false;
        }
    }

}

Obs. eu testei o código e funcionou, só gostaria de saber qual seria a diferença entre a minha implementação e a do professor.

Desde já agradeço!

1 resposta
solução

Olá Gabriel tudo bem, é a mesma implementação praticamente só mudou uma linha que você não criou uma variável autenticou. No seu caso se você precisa do retorno (boolean) da função que nem você fez é válido isso vai depender do que você vai precisar.