Bom dia, comecei no java a pouco e estou fazendo o FJ-11 - OO com a caelum em Brasília. Surgiu uma dúvida, como eu faço para pegar algo digitado pelo Scanner e passar como parâmetro para um método ?
Obrigado ! Ajudou muito, estou travado em outra etapa do código se puder me ajudar a descobrir porque não está autenticando eu agradeceria muito !
Parte da Classe que linda com o Login e autenticação:
public class Gerente extends Funcionario implements Autenticavel {
private Scanner entra;
String login;
int pass;
String pegaLogin() {
entra = new Scanner(System.in);
login = entra.next();
return login;
}
int pegaSenha() {
entra = new Scanner(System.in);
pass = entra.nextInt();
return pass;
}
@Override
public boolean autentica(String usuario, int senha) {
if (this.getUsuario() == usuario && this.getSenha() == senha) {
setStatusNivelDeAcesso(1);
System.out.println("Acesso Concedido !");
return true;
} else {
System.out.println("Acesso Negado !");
return false;
}
Main teste que está chamando a autenticação:
public class testaGerente {
public static void main(String[] args) {
Gerente andre = new Gerente();
andre.setCargo("Gerente de RH");
andre.setCpf("000.000.000-00");
andre.setNome("Andre");
andre.setSalario(3000);
andre.setUltimoNome("Costa");
andre.setUsuario("Andre.Costa");
andre.setSenha(123);
System.out.println("Digite seu Login: ");
String login = andre.pegaLogin();
System.out.println("Digite sua Senha: ");
int pass = andre.pegaSenha();
andre.autentica(login, pass);
}
}
Por algum motivo digitando no login: Andre.Costa e na senha 123 a autenticação não está funcionando. Agradeço novamente a ajuda !
Quando utilizado com tipos primitivos o == compara o valor.
Quando utilizado com objetos, o == compara a referência, ou seja, se as duas variáveis referenciam (apontam para) o mesmo endereço de memória.
Como String's são objetos, utilize o método equals para comparar seu conteúdo.