Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Associações, composições e agregações em java

Gostaria de esclarecer dentro de herança no Java a diferença entre associações, composições e agregações. Entendi que em herança ha a reutilização de código e polimorfismo. Em Interface temos o polimorfismo e em composição a reutilização de código, mas não identifiquei a relação entre associações, composições e agregações.

1 resposta
solução

Oi Rodrigo, tudo bem?

Associação é a relação entre duas classes separadas que são estabelecidas por meio de seus Objetos. A associação pode ser um para um, um para muitos, muitos para um, muitos para muitos. Na programação orientada a objetos, um objeto se comunica com outro objeto para usar a funcionalidade e os serviços fornecidos por esse objeto. Composição e agregação são as duas formas de associação.

Agregação é uma forma especial de associação utilizada para mostrar que um tipo de objeto é composto, pelo menos em parte, de outro em uma relação todo/parte. Indicando que o objeto parte "é um atributo" do objeto todo, onde o ciclo de vida do objeto parte é limitado ao ciclo de vida do objeto todo. Por exemplo as classes Turma, Estudante e Instrutor, o Estudante é ligado a Turma, o Instrutor também e ligado a Turma. Ou seja Turma é um todo, enquanto os Estudantes e o Instrutor são partes do todo.

A composição é uma forma restrita de agregação, na qual duas entidades são altamente dependentes uma da outra. Representa parte do relacionamento. Na composição, ambas as entidades são dependentes uma da outra. Quando há uma composição entre duas entidades, o objeto composto não pode existir sem a outra entidade. Por exemplo a classe Departamento ligada a Escola , se o objeto da classe Escola for destruído, todos os departamentos devem ser excluídos também.