O paradigma de programação orientada a objetos envolve a identificação e abstração de entidades, de acordo com o escopo de um sistema. Selecione a alternativa que mostra um tipo de relacionamento estrutural que especifica quais objetos de uma classe estão conectados a objetos de outra.
- A)Encapsulamento
Errada, porque encapsulamento é um princípio de proteção dos dados e não um relacionamento estrutural entre classes.
- B)Composição
Errada, porque composição é um tipo mais forte de associação, com dependência de ciclo de vida entre todo e parte.
- C)Generalização
Errada, porque generalização indica herança entre classes, e não conexão entre objetos de classes diferentes.
- D)Associação
Certa, porque associação define a ligação estrutural entre objetos de classes distintas.
- E)Agregação
Errada, porque agregação também é um tipo de associação, mas mais específico, relacionado à relação todo-parte.
Gabarito: D
Em Programação Orientada a Objetos, relacionamentos entre classes ajudam a mostrar como os objetos do sistema conversam entre si. É como montar um mapa do sistema: quem usa quem, quem contém quem, quem herda de quem. Isso evita que o projeto vire uma salada de classes soltas, sem ligação clara. A alternativa correta é a letra D, associação. Associação é justamente o relacionamento estrutural que indica que objetos de uma classe estão conectados a objetos de outra, podendo existir de forma mais ou menos intensa, como um cliente que se relaciona com um pedido ou um professor com uma turma. Em UML, isso é representado por uma ligação entre classes, mostrando que há uma conexão entre suas instâncias. Vale separar isso de composição e agregação, que são formas mais específicas de associação, ligadas ao conceito de todo e parte. Já generalização trata de herança, isto é, uma classe mais geral servindo de base para outra mais específica. Encapsulamento, por sua vez, não é relacionamento entre classes, mas proteção e organização dos atributos e métodos. Em termos doutrinários, essa classificação é a mesma usada em UML para relacionamentos estruturais. Então, quando a questão fala em objetos de uma classe conectados a objetos de outra, ela está apontando diretamente para associação, sem truque sofisticado escondido na manga.