Boa noite…
Por gentileza, se alguém puder me explicar, não estou entendendo, sei toda a teoria, quase toda, senão conseguiria né rs, mas na prática faz uma semana que estou tentando, nem sei mais o que escrevo, ja tentei de tudo…
Muito obrigado!!!
Por exemplo, tenho a class Diretor
public class Diretor extends Funcionario implements Autenticavel
{
private String login;
public Diretor(String nome, String departamento, double salario, Data dataAdmissao, String rg, boolean estaNaEmpresa, String login)
{
super(nome, departamento, salario, dataAdmissao, rg, estaNaEmpresa);
this.login = login;
}
public String getLogin()
{
return this.login;
}
public void setLogin(String login)
{
this.login = login;
}
@Override
public double getBonificacaoNoSalario()
{
return this.getSalario() * 2 + 2000;
}
public boolean autenticaLogin(String login)
{
return Validacao.ValidaLogin(login);
}
}
que implements Autenticavel
public interface Autenticavel
{
public boolean autenticaLogin(String login);
public String getLogin();
public void setLogin(String login);
}
E nem todos Funcionarios tem login, Secretaria, Engenheiro que extends Funcionario não tem, somente a Diretor e Gerente. Por isso da Interface, quero logar num sistema, receber como argumento todos autenticaveis, fiz minha class SistemaInterno com um método para isso e é ai que está a confusão vejam…
public class SistemaInterno
{
public void login(Autenticavel a)
{
//confusao1 - o login é o último argumento do construtor "gerencia".
Diretor func = new Diretor("Rodrigo", "Diretoria", 10500.0, new Data(07,04,1976), "RG 710", true, "gerencia");
String senha = func.getLogin();
a.autenticaLogin(senha);
}
public static void main(String[] args)
{
//confusao2
Autenticavel func = new Diretor("Rodrigo", "Diretoria", 10500.0, new Data(07,04,1976), "RG 710", true, "123");
SistemaInterno si = new SistemaInterno();
si.login(func);
}
}
/* confusao1 - para mim é absurdo criar um objeto dentro desse metodo, mas
não consegui fazer de outra forma porque quero que seja validado o login do objeto
referenciado por "func", ai no main... Não gosto de fazer na mesma classe mas de tanto
tentar acabei sucunbindo.
confusao2 - onde é o lugar certo tenho que instanciar novamente para poder
chamar si.login(func); por favor, me ajudem, descupem-me pela minha "burrice", mas não sei mais
o que fazer, tentei um monte de coisas.
O OBJETIVO - e fazer o public void login(Autenticavel a) autenticar o login da propria
referencia "func".*/