¿Qué es la composición en Java? con ejemplos

Publicado: 2023-01-27

Tabla de contenido

Fundamentos de la Asociación en Java:

La asociación se puede definir en Java como una interconexión entre dos clases individuales que utilizan sus distintos objetos. Los tipos de relaciones que gestiona la asociación Java son:

  • Uno a uno: solo existe una única clase derivada para cada clase principal.
  • Uno a muchos: una sola clase principal puede tener más de una clase secundaria.
  • Muchos a uno: una sola clase secundaria puede estar asociada con más de una superclase.
  • Muchos a muchos: se puede asociar una cantidad de clases principales con una sola clase secundaria y se puede asociar una mayor cantidad de clases secundarias con una sola clase principal.

Una vez establecida la relación, las clases derivadas se comunican con las respectivas clases base para reutilizar sus características y propiedades. Hay dos tipos de asociación en Java. Son la agregación y la composición.

La agregación en Java es un proceso más generalizado en comparación con la composición. Estos formularios se basan en el tipo de relación admitida entre las clases.

Introducción a la Composición en Java:

Una técnica de diseño en Java que implementa una relación Has-A se conoce como composición. El proceso de herencia se utiliza para reutilizar el código. La composición en Java se puede lograr usando una variable de instancia que se refiera a otros objetos. Si un objeto constituye otro objeto de tal manera que el objeto constituyente no puede existir sin la supervivencia del objeto principal, el tipo de relación se denomina composición. Para ser más específicos, la composición es un aspecto que describe la referencia entre dos o más clases con la ayuda de variables de instancia. Aquí, la instancia debe crearse antes de usar las variables instantáneas. Tomemos un ejemplo de una Biblioteca para una comprensión clara del concepto 'composición'.

Existen numerosos libros en una biblioteca. Cada libro tiene autores y títulos separados. La biblioteca también debe tener una lista de referencia de libros. La biblioteca también cuenta con varios libros relacionados con el mismo tema o temas diversos. Aquí, la biblioteca corresponde a la clase principal y los libros se pueden relacionar con la clase derivada. La asociación o la relación entre los libros y la biblioteca puede considerarse como composición. Esto se debe a que la clase "Libros" depende completamente de la biblioteca de clases. Por ejemplo, si se destruye la biblioteca, todos los libros que contiene también se destruyen.

Consulte nuestros cursos de tecnología gratuitos para obtener una ventaja sobre la competencia.

Explore nuestros cursos populares de ingeniería de software

Maestría en Ciencias en Ciencias de la Computación de LJMU & IIITB Programa de Certificado de Ciberseguridad Caltech CTME
Bootcamp de desarrollo de pila completa Programa PG en Blockchain
Programa Ejecutivo PG en Desarrollo Full Stack
Ver todos nuestros cursos a continuación
Cursos de ingeniería de software

Una descripción detallada de Composición en Java:

La Composición es una forma de asociación Java. Las dos clases que se comunican están fuertemente interrelacionadas, donde la clase derivada depende completamente de la clase principal. La existencia independiente de la clase derivada no es posible en este caso. Por ejemplo, un motor sin automóvil no puede existir de forma independiente. Este tipo de asociación está muy restringido en comparación con la agregación. La composición es una técnica de diseño y no debe confundirse con una característica de Java.

La Composición se puede utilizar para modelar objetos que tienen otros objetos como miembros constituyentes. Existe la relación tiene-un entre estos objetos. En este tipo de asociación, un objeto contiene al otro objeto. Por lo tanto, el objeto constituyente depende completamente del objeto principal para su supervivencia. Entonces, si el objeto contenedor se arruina, el objeto constituyente también se ve afectado. Por lo tanto, la relación de composición puede verse como una parte de la relación total en la que no es posible la existencia de la parte sin el todo. En otras palabras, la parte se elimina automáticamente al eliminar el todo. Esto implica que el todo tiene una relación firme con la parte.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Habilidades de desarrollo de software bajo demanda

Cursos de JavaScript Cursos básicos de Java Cursos de Estructuras de datos
Cursos de Node.js Cursos SQL Cursos de desarrollo de pila completa
Cursos NFT Cursos DevOps Cursos de Big Data
Cursos de React.js Cursos de Seguridad Cibernética Cursos de computación en la nube
Cursos de diseño de base de datos Cursos de Python Cursos de Criptomonedas

¿En qué se diferencia la herencia de la composición en Java?

Es importante tener en cuenta que la funcionalidad de la herencia también se puede lograr utilizando la composición en Java. Aunque tanto la herencia como la composición se utilizan para ofrecer la reutilización del código por parte de la clase relacionada, existen diferencias sutiles entre estos dos. La principal diferencia entre los dos procesos es que la composición es una técnica de diseño, a diferencia de la herencia, que es una característica de Java. Otras diferencias importantes entre los dos se enumeran en la siguiente tabla.

Parámetro

Composición

Herencia

Básico Incorpora una relación HAS-A. Incorpora una relación IS-A.
Reutilización de código El código se puede reutilizar en múltiples clases. La reutilización de código solo es posible en una clase porque solo una interfaz puede ser extendida por una clase.
Alcance Se puede lograr fácilmente en el tiempo de ejecución. Las características se logran mejor en tiempo de compilación.
Final Facilita la reutilización de código incluso desde las clases finales. El código de las clases finales no se puede reutilizar en caso de herencia.
Métodos Los métodos no están expuestos. Las interfaces públicas se utilizan para su interacción. La herencia expone los métodos públicos y protegidos de la clase base.

Diferencias entre Agregación y Composición:

Agregación

Composición

Es un tipo de asociación Java débil. Es un tipo de asociación más fuerte en comparación con la agregación.
La clase derivada es independiente de la clase base. Por lo tanto, la clase derivada puede continuar existiendo incluso si se destruye la clase base. La clase derivada depende completamente de la clase base. Por lo tanto, la subclase no puede existir si se destruye la superclase.
La clase secundaria tiene su propia vida. La vida útil de la clase secundaria depende de la clase principal.
La clase padre usa la clase hijo en este tipo de asociación. Por lo tanto, la clase derivada no es propiedad de la clase base. En este tipo de asociación, la clase principal es propietaria de la clase secundaria. Por lo tanto, la clase principal es la propietaria de la clase secundaria.
Constituye una relación HAS-A. La clase derivada tiene una clase base. Constituye una parte de la relación. La clase derivada es una parte de la clase base.
La palabra clave final no se utiliza para denotar agregación. La palabra clave final puede usarse para denotar composición.
Ejemplo: El coche tiene un conductor. Ejemplo: El motor es una parte del automóvil.

Lea nuestros artículos populares relacionados con el desarrollo de software

¿Cómo implementar la abstracción de datos en Java? ¿Qué es la clase interna en Java? Identificadores de Java: definición, sintaxis y ejemplos
Comprender la encapsulación en OOPS con ejemplos Argumentos de línea de comando en C explicados Las 10 funciones y características principales de la computación en la nube en 2022
Polimorfismo en Java: conceptos, tipos, características y ejemplos ¿Paquetes en Java y cómo usarlos? Tutorial de Git para principiantes: Aprende Git desde cero

Ventajas de usar Composición en Java:

  • La composición facilita la reutilización del código Java.
  • Aunque Java no admite herencias múltiples, esta técnica de diseño puede llenar el vacío.
  • Con el uso de la composición, se puede probar la capacidad de una clase de una mejor manera.
  • El código se hace más flexible con el uso de la composición. La implementación de la clase compuesta se puede reemplazar con una versión mejorada.
  • Los miembros del objeto se pueden cambiar en tiempo de ejecución para el cambio dinámico del comportamiento del programa con el uso de una relación de composición.

Limitaciones de composición en Java:

Hay algunos inconvenientes de usar la composición en Java. La principal desventaja de la composición de objetos es que es más difícil para el usuario comprender el comportamiento del sistema implementado simplemente reflexionando sobre el código fuente. Un sistema que utiliza la composición de objetos es de naturaleza muy dinámica. Por lo tanto, comprender el funcionamiento de los sistemas que utilizan la composición de objetos requiere un análisis más profundo del código fuente y ejecutar el código para presenciar el funcionamiento y la cooperación entre los objetos individuales en el código fuente.

Si está interesado en obtener más información sobre Java, desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software: especialización en desarrollo de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa. , más de 9 proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.

¿Quieres compartir este articulo?

Prepárese para una carrera del futuro

Solicite ahora la Maestría en Ingeniería de Software