Come implementare l'associazione in Java

La relazione di associazione indica che una classe conosce e detiene un riferimento a un'altra classe. Le associazioni possono essere descritte come una relazione "has-a" perché l'implementazione tipica in Java è attraverso l'uso di un campo di istanza. La relazione può essere bidirezionale con ciascuna classe con un riferimento all'altro. Aggregazione e composizione sono tipi di relazioni di associazione.

Le associazioni uniscono una o più di una cosa contro una o più di un'altra cosa. Un professore potrebbe essere associato a un corso universitario (una relazione uno a uno) ma anche a ogni studente della sua classe (una relazione uno a molti). Gli studenti di una sezione potrebbero essere associati agli studenti di un'altra sezione dello stesso corso (una relazione molti-a-molti) mentre tutte le sezioni del corso si riferiscono a un singolo corso (una relazione molti-a-uno).

Esempio di associazione

Immagina un semplice gioco di guerra con una classe AntiAircraftGun e una classe Bomber. Entrambe le classi devono essere consapevoli l'una dell'altra perché sono progettate per distruggersi:

 classe pubblica AntiAirCraftGun 
  bersaglio del bombardiere privato;
  private int positionX;
  privato int positionY;
  danno int privato;
  public void setTarget (Bomber newTarget)
  
    this.target = newTarget;
  
  // resto della classe AntiAircraftGun

bombardiere di classe pubblica
  target privato AntiAirCraftGun;
  private int positionX;
  privato int positionY;
  danno int privato;
  public void setTarget (AntiAirCraftGun newTarget)
  
    this.target = newTarget;
  
  // resto della classe Bomber

La classe AntiAirCraftGun ha un Oggetto Bomber e classe Bomber ha un Oggetto AntiAirCraftGun.