La agregación en Java es una relación entre dos clases que se describe mejor como una relación «tiene un» y «todo/parte». Es una versión más especializada de la relación de asociación . La clase agregada contiene una referencia a otra clase y se dice que tiene la propiedad de esa clase. Cada clase a la que se hace referencia se considera parte de la clase agregada.
La propiedad se produce porque no puede haber referencias cíclicas en una relación de agregación. Si la Clase A contiene una referencia a la Clase B y la Clase B contiene una referencia a la Clase A, entonces no se puede determinar una propiedad clara y la relación es simplemente de asociación.
Por ejemplo, si imagina que una clase de Estudiante almacena información sobre estudiantes individuales en una escuela. Ahora suponga una clase de Materia que contiene los detalles sobre un tema en particular (por ejemplo, historia, geografía). Si la clase Estudiante está definida para contener un objeto Sujeto, entonces se puede decir que el objeto Estudiante tiene un objeto Sujeto. El objeto Sujeto también forma parte del objeto Estudiante; después de todo, no hay estudiante sin un tema para estudiar. El objeto Estudiante, por lo tanto, posee el objeto Sujeto.
Ejemplos
Defina una relación de agregación entre la clase Student y la clase Subject de la siguiente manera:
public class Asunto {
private String nombre;
public void setName(String nombre) {
this.name = nombre;
}
public String getName()
{
devolver nombre;
}
}
public class Student {
private Subject[] StudyAreas = new Subject[10];
//el resto de la clase Student
}