Dúvida besta em instanciação

2 respostas
programaçãofrontjavafront-end
Fabricio_Franco

Pessoal ando meio enferrujado de Java, surgiu uma dúvida. Qual a diferença de se chamar uma classe na main assim:

public static void main(String args[])  {
    new MyJFrame();
}

E assim:

public static void main(String args[])  {
   FrameGeral frame = new FrameGeral();
}

2 Respostas

RaulCrash

Na primeira tú não terá a instancia em um atributo p/ utiliza-lo naquele escopo(método) e a outra você a terá em um atributo/variável.

igorventurelli

Instanciando da primeira forma, você aloca na memória uma instancia de MyJFrame, porém não referencia á ela nenhum objeto, logo não conseguirá utilizá-la e o Garbage Collector poderá eliminá-la da memória.

Instanciando da segunda forma você também aloca na memóra uma instancia de MyJFrame, mas dessa vez cria também uma variável (chamada frame) e referencia esta ao endereço de memória onde a instancia de MyJFrame está. Dessa forma, uma vez que no escopo atual existe referencia entre variável e o objeto na memória, você consegue utilizar a variável como um objeto de MyJFrame e por existir essa referência o Garbage Collector não irá eliminá-la da memória (não elimina se o escopo ainda for válido. Seu escopo, nesse exemplo é o método main).

Criado 2 de dezembro de 2016
Ultima resposta 2 de dez. de 2016
Respostas 2
Participantes 3