Saltar al contenido

Agregación en Java – Javatpoint

septiembre 23, 2021
aggregation

Si una clase tiene una referencia de entidad, se conoce como agregación. La agregación representa la relación HAS-A.

Considere una situación, el objeto Empleado contiene mucha información como id, nombre, emailId, etc. Contiene un objeto más llamado dirección, que contiene su propia información como ciudad, estado, país, código postal, etc., como se indica a continuación.

clase Empleado {int id; Nombre de cadena; Dirección dirección; // La dirección es una clase …}

En tal caso, el Empleado tiene una dirección de referencia de la entidad, por lo que la relación es la dirección del Empleado TIENE-A.

¿Por qué utilizar la agregación?


Ejemplo simple de agregación

ejemplo de agregación

En este ejemplo, hemos creado la referencia de la clase Operation en la clase Circle.

class Operation{
 int square(int n){
  return n*n;
 }
}

class Circle{
 Operation op;//aggregation
 double pi=3.14;
  
 double area(int radius){
   op=new Operation();
   int rsquare=op.square(radius);//code reusability (i.e. delegates the method call).
   return pi*rsquare;
 }

   
  
 public static void main(String args[]){
   Circle c=new Circle();
   double result=c.area(5);
   System.out.println(result);
 }
}

Pruébelo ahora

¿Cuándo se usa la agregación?

  • La reutilización del código también se logra mejor mediante la agregación cuando no existe una relación is-a.
  • La herencia debe usarse solo si la relación es-a se mantiene durante la vida útil de los objetos involucrados; de lo contrario, la agregación es la mejor opción.

Comprensión de un ejemplo significativo de agregación

En este ejemplo, el empleado tiene un objeto de dirección, el objeto de dirección contiene su propia información, como ciudad, estado, país, etc. En tal caso, la relación es la dirección del empleado HAS-A.

Dirección.java

public class Address {
String city,state,country;

public Address(String city, String state, String country) {
	this.city = city;
	this.state = state;
	this.country = country;
}

}

Emp.java

public class Emp {
int id;
String name;
Address address;

public Emp(int id, String name,Address address) {
	this.id = id;
	this.name = name;
	this.address=address;
}

void display(){
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+" "+address.country);
}

public static void main(String[] args) {
Address address1=new Address("gzb","UP","india");
Address address2=new Address("gno","UP","india");

Emp e=new Emp(111,"varun",address1);
Emp e2=new Emp(112,"arun",address2);
	
e.display();
e2.display();
	
}
}

Pruébelo ahora

Output:111 varun
       gzb UP india
       112 arun
       gno UP india      
close