Reutilização dos objetos

3 respostas
A

Todo mundo sempre faz esse código assim:

jpanel1.setLayout(new FlowLayout());
jpanel2.setLayout(new FlowLayout());
jpanel3.setLayout(new FlowLayout());
jbutton1.addActionListener(new ButtonListener1());
jbutton2.addActionListener(new ButtonListener1());

Mas ele pode ser feito assim? E caso não, porque não pode?

FlowLayout      f = new FlowLayout();
ButtonListener1 b = new ButtonListener1();
jpanel1.setLayout(f);
jpanel2.setLayout(f);
jpanel3.setLayout(f);
jbutton1.addActionListener(b);
jbutton2.addActionListener(b);

3 Respostas

romarcio

No 1° exemplo vc estaria criando uma instancia diferente para cada método setLayout() e addActionListener().

No 2° exemplo vc estaria criando uma única instancia para cada método setLayout() e addActionListener(). Desta forma, se você alterar está instancia, vc acaba alterando todos os objetos. O que ocorre é que cada um destes objetos seriam um tipo de cópia, ou seja, mudou algo em jbutton1, essa mudança vai refletir em jbutton2 e jbutton3. O que não é nada bom que aconteça. Por isso, a primeira forma é a utilizada.

A

Então se não for necessário mudar nada nesses objetos, não tem problema dar a mesma instância a eles?

romarcio

Resumindo, evite usar a mesma instancia para diferentes objetos.

Criado 27 de julho de 2015
Ultima resposta 30 de jul. de 2015
Respostas 3
Participantes 2