Diferença entre agregação e composição em Java

Diferença-chave - Agregação vs Composição em Java

A agregação é uma associação entre dois objetos que descreve o relacionamento "tem um". A composição é o tipo mais específico de agregação que implica propriedade. o diferença chave entre agregação e composição em Java é que, se o objeto contido pode existir sem a existência do objeto proprietário, é uma agregação e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.

A Programação Orientada a Objetos (OOP) é ​​um paradigma importante no desenvolvimento de software. É usado para modelar o software usando objetos. Os objetos são criados usando classes. Uma classe consiste em propriedades e métodos. Existem vários objetos no software. Cada objeto colabora entre si através da passagem de mensagens. O relacionamento entre dois objetos é conhecido como uma associação. Agregação e composição são dois tipos de associação. O relacionamento "has-a" descreve que um objeto pode usar outro objeto. A agregação e a composição podem ser implementadas nos idiomas de suporte do OOP. Se o objeto contido puder existir sem a existência do objeto proprietário, a associação entre esses dois objetos será uma agregação. Se o objeto contido não puder existir sem a existência do objeto proprietário, a associação entre esses dois objetos será uma composição.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é agregação em Java
3. O que é composição em Java
4. Semelhanças entre agregação e composição em Java
5. Comparação Lado a Lado - Agregação vs Composição em Java em Forma Tabular
6. Resumo

O que é agregação em Java?

A agregação é um tipo de associação. Se uma classe tem uma referência de entidade, ela é conhecida como agregação. A agregação representa o relacionamento has-a. Um objeto Student pode ter propriedades como student_id, nome, endereço. Esse objeto também pode ter outro objeto chamado endereço com suas próprias informações, como cidade, estado e país. Nessa situação, o aluno tem um endereço de referência da entidade. É um relacionamento “tem um”.

Figura 01: Classe de marcas

Figura 02: Programa principal para descrever a agregação

De acordo com o programa acima, a classe Marks consiste em três propriedades que são marcas de matemática, inglês e ciências. O Aluno tem um objeto de Marcas. Possui propriedades próprias que são marcas de matemática, inglês e ciências. No método principal, um objeto de Marcas é criado e os valores das marcas são atribuídos. O objeto de aluno que é s1 pode usar o objeto de marcas que é m1. Portanto, o aluno e as marcas têm o relacionamento "tem". O objeto Marcas pode existir sem o Objeto Aluno. Portanto, é uma agregação.

O que é composição em Java?

Composição é um tipo de associação. É uma forma específica de agregação que implica propriedade. Suponha que haja duas classes chamadas classe A e B. Se o objeto da classe B não puder existir se o objeto da classe A for destruído, isso é uma composição. Um livro consiste em muitas páginas. Se o livro for destruído, as páginas também serão destruídas. Os objetos de página não podem existir sem o objeto de livro. Consulte o programa abaixo.

Figura 03: Classe da sala de aula

Figura 04: Turma escolar

Figura 05: Programa principal para descrever a composição

De acordo com o programa acima, o Classroom tem duas propriedades: name e numOfStudents. A escola é uma coleção de objetos da sala de aula. No método principal, dois objetos do Classroom são criados. Esses são adicionados às 'salas de aula'. Essas 'salas de aula' são passadas para o objeto da escola. Por fim, o nome da sala de aula e o número de alunos são impressos através da iteração. Se o objeto Escola for destruído, os objetos da Sala de aula também serão destruídos. Este é um exemplo de composição. Ele também contém o relacionamento 'has-a' e também implica propriedade.

Qual é a relação entre agregação e composição em Java?

  • Agregação e Composição são dois tipos de Associação e Composição é um tipo especializado de Agregação. Composition é um subconjunto de Agregação.

Qual é a diferença entre agregação e composição em Java?

Agregação vs Composição em Java

Agregação é uma associação entre dois objetos que descreve o relacionamento "tem um". A composição é um tipo mais específico de agregação que implica propriedade.
 Uso
A agregação é usada quando um objeto usa outro objeto. A composição é usada quando um objeto possui outro objeto.
Afetar em objetos
Na agregação, a destruição do objeto proprietário não afetará o objeto que o contém. Na composição, a destruição do objeto proprietário afetará o objeto que o contém.

Resumo - Agregação vs Composição em Java

Agregação e Composição são dois conceitos em OOP. O relacionamento "has-a" descreve que um objeto pode usar outro objeto. A agregação é uma associação entre dois objetos que descreve o relacionamento "tem um". A composição é um tipo mais específico de agregação que implica propriedade. A diferença entre agregação e composição em Java é que, se o objeto contido pode existir sem a existência do objeto proprietário, é uma agregação e se o objeto contido não pode existir sem a existência do objeto proprietário, é uma composição.

Referência:

1. "Associação, Composição e Agregação em Java". GeeksforGeeks, 8 de fevereiro de 2018. Disponível aqui 
2. “Agregação em Java - Javatpoint.” Ponto Java. Disponivel aqui