If com inicialização

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!

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);