Wednesday, September 3, 2025

Preguntas de entrevista Java - Tipos de relaci贸n entre clases

Preguntas de entrevista Java:

Preguntas de entrevista Java:

馃搸 ¿Explica los tipos de relaciones que hay entre clases?

Las clases no pueden trabajar de manera aislada, deben trabajar en conjunto para implementar una funcionalidad.

馃 Asociaci贸n (Association).

Indica que una propiedad de una clase (digamos clase A) mantiene una referencia a la instancia de otra clase (digamos clase B). Al existir esta relaci贸n, la clase A puede hacer uso de la clase B llamando a los m茅todos p煤blicos de esta y as铆 trabajar en conjunto para implementar alg煤n requerimiento.

Puede ser de los siguientes tipos:
* Unidireccional: La clase A puede ver y usar la clase B, pero la clase B no sabe nada de la clase A.
* Bidireccional: Tanto la clase A como la clase B se conocen entre ellas, es decir, mantienen una propiedad haciendo referencia la una a la otra.

➕ Agregaci贸n (Aggregation)

Esta relaci贸n es una especializaci贸n de asociaci贸n. En una agregaci贸n, las clases forman conceptualmente un “todo y sus partes”.

Usar茅 una analog铆a para tratar de explicar este concepto. Imaginen que est谩n creando un sistema para una agencia de autos, espec铆ficamente el m贸dulo de venta de refacciones; entonces un “todo y sus partes” podr铆a ser el carro y sus diferentes refacciones. La caracter铆stica importante en una relaci贸n de agregaci贸n es que las “partes” pueden ser separadas del “todo” y tener un ciclo de vida separado. Ejemplo: En el m贸dulo de refacciones del sistema, una parte (o refacci贸n) de un carro puede colocarse en otro carro si estas son compatibles.

⛓️‍馃挜Composici贸n (Composition)

Esta relaci贸n es otra especializaci贸n de asociaci贸n. En una composici贸n, las clases forman, de manera similar a la agregaci贸n, un “todo y sus partes”, pero en este caso las partes no pueden ser separadas del todo; viven y tienen sentido solo si est谩n en unidad.

Usando de nuevo la analog铆a del sistema de la agencia de autos, pero en este caso el m贸dulo de ventas de autos, un “todo y sus partes” podr铆a ser el carro y el motor, faros, llantas, etc., pero aqu铆, cuando un carro se vende, se vende con todo y sus partes.

馃悢 馃惀 Herencia (Inheritance)

Esta relaci贸n no es una asociaci贸n, es m谩s bien una relaci贸n de herencia “padre-hij@” (is-a). Esta relaci贸n entre clases se da cuando en Java una clase A “extiende” una clase B.

馃搫 Implementaci贸n / realizaci贸n (Implementation / Realization)

Similar a la herencia, esta relaci贸n no es una asociaci贸n como tal. Esta relaci贸n indica que una clase implementa un contrato definido en una interfaz; esto en Java se traduce en que una clase A implementa una interfaz B.

馃憠 Dependencia (Dependency)

El nombre de esta relaci贸n entre clases puede ser confuso; al final del d铆a, todas las relaciones de las que hablamos forman dependencia entre clases, pero en este caso la relaci贸n de dependencia es m谩s temporal; es decir, una clase A podr铆a instanciar y usar una clase B en alguno de sus m茅todos.

¿Qu茅 opinan?

No comments: