Acessar uma variável sem criar um novo objeto

4 respostas
B

Caros, tenho uma dúvida acredito que para muitos aqui seja algo simples a resolver.
Estou fazendo um projeto para o Trabalho Semestral da faculdade, um chat... Bom pulando logo para a questão que para mim (mero iniciante) se tornou um problema.

Utilizo o NetBeans, e tenho as Classes (arquivos separados):
RodaChat.java (contendo o MAIN)
SimpleChatClient.java (Interface do bate papo)
LoginSenha.java (Autenticação do bate papo)

Logo meu problema se encontra na seguinte questão.

No código de RodaChat.java crio uma instância da classe LoginSenha.java da seguinte forma:

public class RodaChat {

    public static void main(String[] args) {


        LoginSenha logando = new LoginSenha();


    }
}

Criando então 1 objeto desta classe, já na classe LoginSenha passo por algumas validações Inserindo o nome, uma senha pré definida, e o IP;
caso tudo esteja ok, então dentro de um IF instâncio a classe SimpleChatCliente.java.

Nessa classe SimpleChatCliente (interface), tenho algumas propriedades de conexão e a interface do batepapo, porém preciso pegar o que foi definido pelo usuário quando solicitado Login, Senha e IP.

A questão é a seguinte:

Como faço isso ?
- Não posso dentro da classe SimpleChatCliente utilizar novamente uma outra instância, porque logo estarei criando um novo objeto(duas janelas de LoginSenha)

LoginSenha LS = new LoginSenha();

Como conseguiria pegar dentro da classe SimpleChatCliente utilizar os valores atribuidos pelo usuário ao novo objeto (logando) sem criar novos objetos. Os valores que desejo são IP, LOGIN. (O curioso é que fiz instanciando dentro de SimpleChatCliente um new LoginSenha para ter acesso as variaveis de loginsenha, e ele recebeu o valor que o usuário passou para o ip, e isso comprovo uma vez que o chat se conecta no servidor, porém o Login como abre uma nova janela, ele seta como null, por instanciar um novo objeto)

Bom acredito que fui claro, acho que tem algo ligado a Static e this (não sei como usar ainda).

Dúvidas ? Estes são meus problemas mais caso tenham faço questão em esclarecer . Rs :)

Estou lendo um livro (use a cabeça java) , mais estou na página 190 de 480 e poucas, até eu terminar já passou as minhas datas ^^ .. rsrs..

Valeu galera . Se necessário envio o código .

Abraço .

4 Respostas

G

Sou novato também, mais eu acredito que sejam necessários alguns ou algum método para o objetivo, acho que tenho uma solução. é o seguinte: Faça uma método que pega o que o usuário passou(ip senha e tal) e dê esses valores as variáveis dentro desse método então toda vez que for fazer o login escreve logando.(e aqui coloque o método para rodar) assim as variáveis ficariam com os valores, ou (eu acho melhor) coloque isso no construtor da classe, porque ai toda vez que ela for chamada (executada) este método será feito, bom acho que isso da certo faça e diz para mim se deu certo :slight_smile:

diego.sas

Pode alterar o construtor da classe SimpleChatCliente, recebendo LoginSenha como parametro.

ou

public class SimpleChatCliente{
    private LoginSenha loginSenha;
    // getters / setters...
}


public class RodaChat {
    public static void main(String[]args){
       LoginSenha loginSenha = new    LoginSenha ():
       // Validacao do Login
        if(//login valido){
               SimpleChatCliente simpleChatCliente = new SimpleChatCliente(); 
               simpleChatCliente.setLoginSenha( loginSenha );
        }
    }
}
William_Ricardo

diego.sas:
Pode alterar o construtor da classe SimpleChatCliente, recebendo LoginSenha como parametro.

Fácil assim.

Ou se preferir, pode colocar num método, caso tenha alguma coisa a mais com validação e tal.

B
diego.sas:
Pode alterar o construtor da classe SimpleChatCliente, recebendo LoginSenha como parametro. ou
public class SimpleChatCliente{
    private LoginSenha loginSenha;
    // getters / setters...
}


public class RodaChat {
    public static void main(String[]args){
       LoginSenha loginSenha = new    LoginSenha ():
       // Validacao do Login
        if(//login valido){
               SimpleChatCliente simpleChatCliente = new SimpleChatCliente(); 
               simpleChatCliente.setLoginSenha( loginSenha );
        }
    }
}

Agradeço, iluminou o fim do túnel cara, vou fazer novos testas agora que me refrescou as idéias,

passar por parâmetros, logo mais posto os resultados e se for de utilidade o código.

Agradeço aos demais que ajudaram.

Valeu'

Resolvido passei as informações através de parâmetros dos métodos.

Agradeço'

Criado 30 de maio de 2012
Ultima resposta 30 de mai. de 2012
Respostas 4
Participantes 4