Boa noite, Thiago! Como vai?
Para instanciar qualquer coisa vc aprendeu durante o curso que é necessário utilizar a palavra reservada new
. Observe que dentro da classe Pessoa
vc tem um atributo Endereco endereco
. Ou seja, um cara que está pronto para armazenar um objeto sempre que vc quiser!
Aí, dentro do método main()
da classe Programa
vc primeiro instância um objeto do tipo Pessoa
fazendo Pessoa p = new Pessoa()
, coloca um nome nessa pessoa fazendo p.nome = "Paulo"
e, por último, tenta colocar um logradouro no endereço fazendo p.endereco.logradouro = "Aveninda XYZ"
.
No entanto, repare que anteriormente eu disse que o atributo endereço está pronto para armazenar um objeto! Só que em momento nenhum vc instanciou um objeto do tipo Endereco
antes de utilizar esse atributo.
Portanto, o correto seria fazer:
public class Programa {
public static void main(String args[]) {
Pessoa p = new Pessoa(); // instancio uma pessoa
p.nome = "Paulo"; //dou nome para ela
p.endereco = new Endereco(); // instancio um endereço
p.endereco.logradouro = "Aveninda XYZ"; // dou um logradouro para ele
}
}
Por isso o item B da questão diz que
Ela esta acessando uma propriedade de um objeto que não foi inicializado.
Ficou claro? Qualquer coisa é só falar!
Grande abraço e bons estudos!