Uma curiosidade

Nem sei como procurar este tipo de informação, por isso segue este post, vou colocar 2 exemplos

Como eu vejo em alguns exemplos:

class Tela extends JIntermalFrame {
   private JPanel painel1;
   private JButtons botao;

   public Tela {
      add(getPainel1());
      add(getBotao());
   }

   public JPanel painel1 {
      if (painel == null {
         painel = new JPanel();
      }
      return painel1;
   }

   public JButton botao {
      if (botao == null) {
         botao = JButtons();
      }
      return botao;
   }
}

Eu faço assim:

class Tela extends JIntermalFrame {
   private JPanel painel1;
   private JButtons botao;

   public Tela {
      add(painel1);
      add(botao);
   }

   private JPanel painel1 {
      painel = new JPanel();
      return painel1;
   }

   private JButton botao {
      botao = JButtons();
      return botao;
   }

   /* metodos */
   public JPainel getPainel1() {
      return painel1;
   }

   public JButtons getBotao() {
      return botao;
   }
}

A duvida é se como eu faço é prejudicial ou só fora de padrao ?, tem perda de performance ? fiz um teste mas nao vi muita diferença.

*Os 2 exemplos são bem simples e resumido, sei q cada class tem varios metodos, nao coloquei nenhum.

Sem grana para fazer um curso então agradeço a ajuda rsrsrs

Geralmente fazem desse jeito quando a pessoa coloca um monte de componentes (JTextField, um JLabel e etc…), e pra não ficar poluindo o construtor, a pessoa cria um método que retorna o painel, adiciona os componentes nesse painel, e no construtor chama apenas o método, exemplo:

private JPanel getPainel1(){
  JPanel painel = new JPanel(); //Você precisa usar um
  //gerenciador de layout pra colocar os seus componentes 
  //redimensionados e onde vc quiser;
  JLabel texto = JLabel("Teste");
  painel.add(texto);
  return painel;
}

Aí na hora de chamar no construtor, você só chama o getPainel1();

public Tela {
   add(getPainel1()); //esse add(); é dentro do JFrame
}

Mas isso não afeta o desempenho nem nada, só facilita a leitura do seu código.

Lembrando que você poderia chamar esse getPainel1 de qualquer coisa:

public JPanel meuPainel(){}
public JPanel iniciarPainel(){}
public JPanel construir_centro(){}

Enfim, você que decide.

Vlw pela opniao Abner !