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

Erro no método autentica

Bom Dia

Meu método autentica sempre retorna "Não pode entrar no sistema!", mesmo eu setando com a senha correta. Seguem meu códigos abaixo

public class SistemaInterno {

    private int senha = 1234;

    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!");
        }
    }
}

public class TesteSistema {

    public static void main(String[] args) {
        Gerente g = new Gerente();
        g.setSalario(1234);

        SistemaInterno si = new SistemaInterno();
        si.autentica(g);
    }
}
3 respostas

Você pode postar o código da classe Gerente por favor?

Parece estranho autenticar utilizando o salário, mas depende da implementação da classe, sem o código não da pra saber. Estou no aguardo.

Sim, segue a classe Gerente

public class Gerente extends Funcionario implements Autenticavel {

    private AutenticacaoUtil autenticador;

    public Gerente() {
        this.autenticador = new AutenticacaoUtil();

    }

    public double getBonificacao() {
        System.out.println("Chamando o método de bonificacao do Gerente");
        return super.getSalario();
    }

    @Override
    public void setSenha(int senha) {
        this.autenticador.setSenha(senha);
    }

    @Override
    public boolean autentica(int senha) {
        return this.autenticador.autentica(senha);
    }
}
solução!

Agora falta o código da classe AutenticacaoUtil, mas acho que sei qual é o seu problema.

public class TesteSistema {

    public static void main(String[] args) {
        Gerente g = new Gerente();
        g.setSalario(1234); // <-----------------------

        SistemaInterno si = new SistemaInterno();
        si.autentica(g);
    }
}

Veja na linha que indiquei que você não setou a senha do gerente como 1234, e sim seu salário. Tente chamar o método g.setSenha(1234).