If com inicialização

1 resposta
C
Estou começando em java e gostaria que me explicasse o por que do código

if(clientes==null){

clientes = new clientes();

clientes.setVisible(true);

}else{

clientes.setVisible(true);

clientes.setState(JFrame.Normal);

}

ao clicar no JMenuItem Clientes ele cria uma tela clientes, mas se eu simplesmete colocar clientes.setVisible(true);, funciona do mesmo jeito.

Pq devo fazer essa condição? Agradeço!

1 Resposta

ViniGodoy

Por favor, ao postar tópicos:

  1. Não deixe o título em letras maiúsculas;
  2. Use a tag code para formatar seus códigos. Se não sabe fazer isso, leia aqui.
  3. Dê um título descritivo, evitando falar o óbvio. Afinal, se você não tivesse dúvida, nem teria aberto o tópico. E se não fosse de Java Básico, você não teria aberto no fórum de Java Básico.

Quanto à sua dúvida:
Sempre em algum momento você deve fazer

clientes = new clientes();

Se você está podendo tirar esse if dali, é porque já fez isso em algum outro lugar.

O papel daquele if é o de permitir que você faça o new no último momento possível, ou seja, na primeira vez que a pessoa clicar no botão de abrir o formulário.
Assim, você evita consumir memória e tempo de processamento enquanto o formulário não for efetivamente usado.

Isso é chamado de lazy initialization (inicialização preguiçosa).

Seu código também está repetitivo à toa. Você pode reescreve-lo assim:

if(clientes==null){ clientes = new clientes(); } clientes.setState(JFrame.Normal); clientes.setVisible(true);

Criado 16 de agosto de 2012
Ultima resposta 16 de ago. de 2012
Respostas 1
Participantes 2