e quando o login é efetuado com sucesso ele manda o nome do login para o setter por que eu tenho que recuperar ele em um jFrame
user ur = new user();
ur.setUser(login);
e no Jframe eu chamei essa função
private void imprime() {
user ur = new user();
System.out.println(ur.getUser());
}
e continuou a retornar null
L
Lucas_Emanuel
É porque você está atribuindo a variável de referência à uma nova instância da Classe. Aí o novo objeto é construído com atributos null (caso for um atributo do tipo de alguma classe).
Tire a expressão de criação de uma nova instância que provavelmente dará certo.
Att.
0
001gruder001
realmente mas como posso passar a variavel pra outra classe? por que tenho que preecher um campo com essa string e não estou conseguindo passar já que com o getters nao dá nem mandando pra um metodo tbm não está funcionando
L
Lucas_Emanuel
Uma soluçao é voce dar um set e depois serializar o objeto. Aí na outra classe você desserializa o objeto.
0
001gruder001
no caso dar set em uma classe e get em outra?
L
Lucas_Emanuel
Não, isso te retornaria um Null, já que você está criando uma nova instância.
Voce quer fazer um esquema tipo sessão? Onde o usuario faz Login e depois aparece o nome dele na tela principal?
Se for voce pode fazer por Serialização, ou dê uma olhada neste tópico:
Uma pergunta, se está utilizando getter e setter para atribuir/buscar valores de uma variavél (o que considero o correto), porque declarou sua variavél como publica? O correto seria que ela fosse private, concorda?
Pelo menos foi isso que eu verifiquei na sua classe.
Abraços.
0
001gruder001
mesmo private retorna null
coloquei o getter e o setter na classe 2 daí ficou assim
ai uma função principal chama o imprime(); e retorna null
L
Lucas_Emanuel
O certo é ocultar(encapsular) os dados da classe sim. Porém isso nao vai interferir se o método get está retornando null, neste teu caso.
O problema é que você está instanciando um novo Objeto, e as variáveis de instância está localizada juntamente com o objeto no Heap.
A partir do momento que voce cria um novo objeto, um novo espaço na pilha de lixo coletável é alocado, gerando novas variáveis de instância que são configuradas com valores padrão, se o contrutor nao fornecer um valor. No caso da String, o valor padrão é null, por ser um objeto.
Mas afinal de contas, do que você precisa??
Explica melhor o seu problema para tentarmos te ajudar melhor.
0
001gruder001
explicar melhor vou dizer o que disse mais pra cima
tenho um login e preciso do nome de usuario na 2ª classe