Aggregazione in Java è una relazione tra due classi che è meglio descritta come una relazione "has-a" e "interi / parte". È una versione più specializzata di relazione di associazione. La classe aggregata contiene un riferimento a un'altra classe e si dice che abbia la proprietà di quella classe. Ogni classe a cui viene fatto riferimento è considerata come parte di la classe aggregata.
La proprietà si verifica perché non ci possono essere riferimenti ciclici in una relazione di aggregazione. Se la Classe A contiene un riferimento alla Classe B e la Classe B contiene un riferimento alla Classe A, non è possibile determinare una chiara proprietà e la relazione è semplicemente di associazione.
Ad esempio, se immagini che una classe Studente memorizzi informazioni su singoli studenti in una scuola. Ora assumi una classe Soggetto che contiene i dettagli su un particolare argomento (ad es. Storia, geografia). Se la classe Student è definita per contenere un oggetto Subject, si può dire che l'oggetto Student
ha un Soggetto oggetto. Anche l'oggetto Subject compone parte di l'oggetto Studente - dopo tutto, non c'è studente senza materia da studiare. L'oggetto Student, quindi, possiede l'oggetto Subject.