private int l=0;
public void mLogin(int tes){
this.l=tes;
this.l=1;
System.out.println("Login: "+this.l);
}
public int getLogin(){
System.out.println("Login 2: "+l);
return this.l;
}
}
[/code]
o problema eh o seguinte pessoal, implementei essa classe para um sistema de login de um trabalho na faculdade…
Quando a letra “l” for igual a 0 quer dizer que o login nao foi efetuado… e quando por 1 quer dizer quer dizer que o login foi feito…
mas o problema é o seguinte eu chama o metodo “mLogin” de uma outra classe, e passo por parametro o valor 1 para dizer q o login foi feito… coloquei ate um System.out.println para verificar se foi realmente o valor 1 que o metodo recebeu…ate ai tudo bem… ele imprimiu o valor 1 corretamente… mas o problema acontece quando chama o metodo “getLogin”, ele me retorna o valor 0, na verdade ele retorna o mesmo valor que eu declarei lah em cima que por acaso é 0, mas na verdade ele deveria retornar o valor “1” que eu setei para a variavel “l” pelo metodo “mLogin”…
alguem poderia me ajudar? nao sei oq estou fazendo errado…
Mudar para static não é uma solução se você não sabe para quê o static serve. Isso tá mais pra gambiarra.
Você deve estar instanciando dois objetos, e que o login apenas do primeiro. Static apenas propaga o atributo para todos os objetos instanciados dessa classe.
você está setando o valor com a instância log, e depois cria outra instância lg e compara com a nova…
obviamente nunca vai dar certo… por isso o static deu certo, uma baita gambiarra que você setou o valor pra 1 de todas as instâncias novas…
pra que você ta criando essa nova instância login lg=new login(); ???
definitivamente não precisa e este é seu erro.
e aqui usa a instância log que criou pra setar:
if(log.getLogin()==1){
colega se vc criar uma instância e setar nela, e depois dar um get com outra instância, nunca vai dar o que você quer…
flw Hewerton
você está setando o valor com a instância log, e depois cria outra instância lg e compara com a nova…
obviamente nunca vai dar certo… por isso o static deu certo, uma baita gambiarra que você setou o valor pra 1 de todas as instâncias novas…
pra que você ta criando essa nova instância login lg=new login(); ???
definitivamente não precisa e este é seu erro.
e aqui usa a instância log que criou pra setar:
if(log.getLogin()==1){
colega se vc criar uma instância e setar nela, e depois dar um get com outra instância, nunca vai dar o que você quer…
flw Hewerton
[/quote]
eu criei a nova instancia pois o metodo mLogin e getLogin estao em classes diferentes…
agora complico o negocio… nao sei como usar a mesma instancia para os dois…
log.mLogin e log.getLogin se ambos estao em classes diferentes…