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!