Em um diagrama de classes criado por uma equipe, há uma cla...
Qual situação, em código, representa, de maneira adequada, tal ideia de relacionamento entre essas classes?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - A classe P possui uma propriedade de objeto da classe Q.
Vamos entender por que a alternativa C é a correta e analisar as demais opções que são incorretas.
Em UML (Unified Modeling Language), um diagrama de classes é utilizado para representar a estrutura de um sistema, mostrando suas classes, atributos, métodos e os relacionamentos entre elas. Um dos tipos de relacionamento que podemos encontrar é a associação.
A associação descreve um vínculo entre duas classes. Em termos práticos de código, a associação é frequentemente representada quando uma classe tem uma referência a outra classe como um atributo. Assim, a classe "P" possuindo uma propriedade que é um objeto da classe "Q" é uma representação clássica de associação.
Justificativa da alternativa correta:
A alternativa C é correta porque ao dizer que "A classe P possui uma propriedade de objeto da classe Q", estamos descrevendo um relacionamento de associação de forma precisa. Isso significa que a classe "P" tem um atributo que é uma instância da classe "Q". Por exemplo:
class P { private Q q; // Associação com a classe Q }
Análise das alternativas incorretas:
A - "A classe P possui um método que instancia um objeto da classe Q": Esta alternativa descreve uma dependência temporária onde um objeto da classe "Q" é criado dentro de um método da classe "P". Não representa uma associação permanente.
B - "A classe P possui um método que recebe como parâmetro um objeto da classe Q": Similar à alternativa anterior, isso descreve uma dependência temporária, onde a classe "P" usa um objeto da classe "Q" apenas durante a execução de um método, não caracterizando uma associação permanente.
D - "A classe P herda da classe Q": Esta alternativa descreve uma relação de herança, onde a classe "P" é uma subclasse de "Q". Em UML, herança é representada por uma linha com um triângulo vazio apontando para a superclasse, diferindo totalmente do conceito de associação.
E - "A classe Q herda da classe P": Semelhante à alternativa anterior, mas invertida. Aqui, "Q" seria uma subclasse de "P". Novamente, isso descreve herança, não associação.
Espero que esta explicação tenha deixado claro como identificar uma associação entre classes em UML e como é representada em um código. Qualquer dúvida, estou à disposição!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO C
A classe P tem uma propriedade que é um objeto da classe Q, indicando que há uma associação entre elas. Isso significa que a classe P pode acessar e interagir com objetos da classe Q por meio dessa propriedade.
A. A classe P possui um método que instancia um objeto da classe Q.
- Composição, onde a classe P cria e controla a existência de objetos da classe Q.
B. A classe P possui um método que recebe como parâmetro um objeto da classe Q.
- Dependência entre as classes P e Q. A classe P necessita de objetos da classe Q para executar suas operações, e essa dependência é satisfeita através da passagem de um objeto da classe Q como parâmetro para um método da classe P.
D. A classe P herda da classe Q.
- Herança entre as classes P e Q, o que implica que a classe P adquire os atributos e métodos da classe Q. Porém, herança não é o conceito correto para representar uma associação entre as duas classes, pois herança implica em uma relação de especialização/generalização, enquanto uma associação é uma relação mais genérica de interação entre objetos.
E. A classe Q herda da classe P.
- Herança, mas na direção oposta à anterior. Da mesma forma que a alternativa D, herança não é a representação adequada para um relacionamento de associação entre as classes P e Q.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo