La agregación es una asociación entre dos objetos que describe la relación "has-a". La composición es el tipo de agregación más específico que implica la propiedad. los diferencia clave Entre la agregación y la composición en Java es que, si el objeto contenido puede existir sin la existencia del objeto propietario, es una agregación, y si el objeto contenido no puede existir sin la existencia del objeto propietario, es una composición.
La programación orientada a objetos (OOP) es un paradigma importante en el desarrollo de software. Se utiliza para modelar el software utilizando objetos. Los objetos se crean utilizando clases. Una clase consiste en propiedades y métodos. Hay múltiples objetos en el software. Cada objeto colabora entre sí a través del paso de mensajes. La relación entre dos objetos se conoce como una asociación. Tanto la agregación como la composición son dos tipos de asociación. La relación "has-a" describe que un objeto puede usar otro objeto. La agregación y la composición se pueden implementar en los idiomas de soporte de la POO. Si el objeto contenido puede existir sin la existencia del objeto propietario, entonces la asociación entre esos dos objetos es una agregación. Si el objeto contenido no puede existir sin la existencia del objeto propietario, entonces la asociación entre esos dos objetos es una composición.
1. Resumen y diferencia clave
2. ¿Qué es la agregación en Java?
3. Qué es la composición en Java
4. Similitudes entre agregación y composición en Java
5. Comparación lado a lado: agregación frente a composición en Java en forma tabular
6. Resumen
La agregación es un tipo de asociación. Si una clase tiene una referencia de entidad, se conoce como agregación. La agregación representa la relación has-a. Un objeto de estudiante puede tener propiedades como student_id, nombre, dirección. Este objeto también puede tener otro objeto llamado dirección con su propia información, como ciudad, estado o país. En esta situación, el Estudiante tiene una dirección de referencia de la entidad. Es una relación “has-a”.
Figura 01: Clase de marcas
Figura 02: Programa principal para describir la agregación
De acuerdo con el programa anterior, las marcas de clase constan de tres propiedades que son marcas de matemáticas, inglés y ciencias. El alumno tiene un objeto de marcas. Tiene sus propias propiedades que son marcas de matemáticas, inglés y ciencia. En el método principal, se crea un objeto de Marcas y se asignan valores de marcas. El objeto de estudiante que es s1 puede usar el objeto de marcas que es m1. Por lo tanto, el Estudiante y las Marcas tienen la relación "has-a". El objeto Marks puede existir sin el objeto Student. Por lo tanto, es una agregación..
La composición es un tipo de asociación. Es una forma específica de agregación que implica propiedad. Supongamos que hay dos clases llamadas clase A y B. Si el objeto de la clase B no puede existir si el objeto de la clase A se destruye, entonces eso es una composición. Un libro consta de muchas páginas. Si el libro es destruido, las páginas también se destruirán. Los objetos de página no pueden existir sin el objeto de libro. Consulte el siguiente programa.
Figura 03: Aula de clase
Figura 04: Clase de escuela
Figura 05: Programa principal para describir la composición
De acuerdo con el programa anterior, el aula tiene dos propiedades que son name y numOfStudents. La escuela es una colección de objetos de aula. En el método principal, se crean dos objetos de aula. Los que se añaden a 'aulas'. Estas 'aulas' se pasan al objeto escolar. Finalmente, el nombre del aula y el número de alumnos se imprimen iterando a través de la colección. Si el objeto de la escuela se destruye, los objetos del aula también se destruirán. Este es un ejemplo de composición. También contiene la relación 'has-a' y también implica propiedad.
Agregación vs Composición en Java | |
La agregación es una asociación entre dos objetos que describe la relación "tiene una". | La composición es un tipo de agregación más específico que implica propiedad.. |
Uso | |
La agregación se usa cuando un objeto usa otro objeto. | La composición se usa cuando un objeto posee otro objeto.. |
Afectar a los objetos | |
En agregación, destruir el objeto propietario no afectará al objeto contenedor. | En composición, destruir el objeto propietario afectará al objeto contenedor.. |
La agregación y la composición son dos conceptos en OOP. La relación "has-a" describe que un objeto puede usar otro objeto. La agregación es una asociación entre dos objetos que describe la relación "has-a". La composición es un tipo más específico de agregación que implica propiedad. La diferencia entre la agregación y la composición en Java es que, si el objeto contenido puede existir sin la existencia del objeto propietario, es una agregación y si el objeto contenido no puede existir sin la existencia del objeto propietario, es una composición..
1. “Asociación, composición y agregación en Java”. GeeksforGeeks, 8 de febrero de 2018. Disponible aquí
2. "Agregación en Java - Javatpoint". Punto de Java. Disponible aquí