Cum se implementează Asocierea în Java

Relația de asociere indică faptul că o clasă știe și ține o referință la o altă clasă. Asociațiile pot fi descrise ca o relație „are-a”, deoarece implementarea tipică în Java se face prin utilizarea unui câmp de instanță. Relația poate fi bidirecțională cu fiecare clasă care ține o referință la cealaltă. Agregarea și compoziția sunt tipuri de relații de asociere.

Asociațiile se alătură unuia sau mai multor lucruri împotriva unuia sau mai multor altui lucru. Un profesor ar putea fi asociat cu un curs de colegiu (o relație unu la unu), dar și cu fiecare student din clasa ei (o relație unu-la-mulți). Studenții dintr-o secțiune ar putea fi asociați cu studenții dintr-o altă secțiune a aceluiași curs (o relație de la mulți la mulți) în timp ce toate secțiunile cursului se referă la un singur curs (o relație de la unu la unu).

Exemplu de asociere

Imaginați-vă un simplu joc de război cu o clasă AntiAircraftGun și o clasă Bomber. Ambele clase trebuie să fie conștiente unul de celălalt, deoarece sunt concepute pentru a se distruge reciproc:

 public class AntiAirCraftGun 
  țintă privată pentru Bomber;
  poziție de int privatX;
  poziție de int privatY;
  daune private private;
  public void setTarget (Bomber newTarget)
  
    this.target = newTarget;
  
  // restul clasei AntiAircraftGun

public class Bomber
  țintă privată AntiAirCraftGun;
  poziție de int privatX;
  poziție de int privatY;
  daune private private;
  public void setTarget (AntiAirCraftGun newTarget)
  
    this.target = newTarget;
  
  // restul clasei Bomber

Clasa AntiAirCraftGun are o Obiectul Bomber și clasa Bomber are o Obiect AntiAirCraftGun.