Objetos como atributos
Em código real, objetos frequentemente contêm outros objetos. Por exemplo, um pedido contém um cliente, que contém um endereço. Usar composição evita confusão entre strings e objetos estruturados, permitindo acessar atributos aninhados de forma direta.
O PROBLEMA
Classes Endereco(rua,cidade) e Pessoa(nome,endereco) com pessoa.endereco sendo objeto.
EXEMPLO
Pessoa("Ana",Endereco("Rua A","Recife")).endereco.cidade → RecifeSOBRE O CONCEITO
O exercício ensina composição: uma classe Pessoa tem um atributo endereco que não é uma string, mas sim uma instância da classe Endereco. O erro comum é passar uma string como 'Rua A' em vez de um objeto Endereco('Rua A', 'Recife'). Isso quebra o acesso a pessoa.endereco.cidade, pois uma string não tem atributo cidade. Ao usar um objeto, você pode navegar pela estrutura de dados de forma natural.
RESOLUÇÃO