Qual a razão de declarar uma classe para passar um objeto dessa classe como parâmetro de um método?

Estou compartilhando dados entre janelas. Para tanto, estou passando a classe com o main que vou chamar de JanelaPrincipal, como parâmetro para outra classe que vou chamar apenas de Janela.

Assisti vídeos e vi alguns tópicos ensinando como fazer. Eles aconselharam a fazer o seguinte:

public class Janela extends JFrame{
Container container;
JanelaPrincipal janelaPrincipal;

public Janela(JanelaPrincipal janelaPrincipal){
etc…
}

Por que razão eu tenho (tenho mesmo?) que declarar a variável janelaPrincipal fora do método construtor? Qual a finalidade dela?

Obs.: Minha questão é entender o porquê.

Grato

Declarando da forma como você colocou, ela se torna um atributo pertencente ao Objeto Janela.
E qualquer método dentro desta classe pode manipular este atributo.

Se você declarar ele apenas dentro do construtor, como você está questionando, você não terá mais acesso à ela quando precisar, de nenhum outro método.

Procure ler sobre Escopo de Variáveis … você vai entender certinho o que estou falando.

Abs

1 curtida