4
respostas

Implementação do método autentica com dois parâmetros, está correto, visto que o java não me permite

Implementação do método autentica com dois parâmetros, está correto? Visto que o java não me permite não ter um return true?

    //novo método, recebendo dois params
    public boolean autentica(String login, int senha) {
        if(super.getCpf() == login) {
            this.autentica(senha);
            return true;
        }else {
            return false;
        }
4 respostas

Creio que a implementação do método esteja errada. Ele esta retornando true mesmo que a autenticação da senha seja false. Uma sugestão seria "return this.autentica(senha);"

Concordo com a implementação do Rodrigo acima, seu método esta retornando true mesmo se a senha estiver errada.

Bom dia Fabiana. Para uma melhor implementação e entendimento nesse código seria colocar o "Login" E " Senha" na mesma comparação do IF , se esses dois estiverem corretos ele retornará True e permitirá a entrada, caso contrário retorna False.

Tente da forma abaixo:

public boolean autentica(String login, int senha) {
    if(super.getCpf() == login && this.autentica(senha)) {
            return true;
    }
    return false;
}

Caso queira deixar mais elaborado ainda, simplesmente faça:

public boolean autentica(String login, int senha) {
    return super.getCpf() == login && this.autentica(senha);
}

Pois o return retornará o resultado da expressão lógica na forma booleana. (Claro que isso vale apenas se "autentica" for booleano também).