Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 40 da Aula 6 - Escrevendo Menos Código com Templates

Fiquei com uma dúvida um tanto quanto 'amadora' agora, mas queria saber se tem diferença agora entre eu instanciar um novo objeto:

DadosPessoais dadosPessoais = new DadosPessoais();

E eu criar um novo atributo:

private DadosPessoais dadosPessoais;
1 resposta
solução!

Olá Daniel! Tem diferença sim.

Uma instancia como atributo de uma classe significa que todo objeto de tal classe terá uma referencia a um outro objeto, e essa referencia ira existir enquanto o objeto existir.

Já uma instancia como no primeiro caso, pode ser feita em um método e ela irá existir apenas durante a execução do método.

Para facilitar a compreensão imagine um Objeto caneta, toda caneta tem que possuir tinta, então toda caneta tem que ter o Objeto tinta.

Logo quando instanciarmos o objeto caneta ela terá como atributo uma referencia ao objeto Tinta que ela possui, esse é o segundo caso.

Agora imagine que essa caneta tem um método que se chama escreve(). Para uma caneta escrever é necessário um papel, logo dentro do método escreve iremos instanciar um Objeto Papel e este será utilizado apenas durante a execução do método para que a caneta escreva.

Além disso a diferenças de escopo também, um atributo da classe pode ser utilizado em toda a classe enquanto uma instancia em um método não.

Bem espero ter ajudado, Bons estudos! Caso ainda tenha dúvida só dizer que iremos te ajudar.