Cómo implementar la asociación en Java

La relación de asociación indica que una clase conoce y mantiene una referencia a otra clase. Las asociaciones pueden describirse como una relación "has-a" porque la implementación típica en Java es mediante el uso de un campo de instancia. La relación puede ser bidireccional con cada clase sosteniendo una referencia a la otra. La agregación y la composición son tipos de relaciones de asociación..

Las asociaciones unen una o más de una cosa contra una o más de otra cosa. Un profesor podría estar asociado con un curso universitario (una relación de uno a uno) pero también con cada estudiante en su clase (una relación de uno a muchos). Los estudiantes en una sección pueden estar asociados con los estudiantes en otra sección del mismo curso (una relación de muchos a muchos) mientras que todas las secciones del curso se relacionan con un solo curso (una relación de muchos a uno).

Ejemplo de asociación

Imagine un juego de guerra simple con una clase AntiAircraftGun y una clase Bombardero. Ambas clases deben ser conscientes entre sí porque están diseñadas para destruirse mutuamente:

 clase pública AntiAirCraftGun 
  blanco de bombardero privado;
  posición int privada X;
  posición int privada Y;
  daño int privado;
  público vacío setTarget (Bomber newTarget)
  
    this.target = newTarget;
  
  // resto de la clase AntiAircraftGun

Bombardero de clase pública
  objetivo privado AntiAirCraftGun;
  posición int privada X;
  posición int privada Y;
  daño int privado;
  public void setTarget (AntiAirCraftGun newTarget)
  
    this.target = newTarget;
  
  // resto de la clase Bombardero

La clase AntiAirCraftGun tiene un Objeto bombardero y la clase bombardero tiene un Objeto AntiAirCraftGun.