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;
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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;
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.