logo

Aggregazione in Java

Se una classe ha un riferimento a un'entità, è nota come Aggregazione. L'aggregazione rappresenta la relazione HAS-A.

Considera una situazione, l'oggetto Employee contiene molte informazioni come ID, nome, emailId ecc. Contiene un altro oggetto denominato indirizzo, che contiene le proprie informazioni come città, stato, paese, codice postale ecc. Come indicato di seguito.

 class Employee{ int id; String name; Address address;//Address is a class ... } 

In tal caso, Employee ha un indirizzo di riferimento dell'entità, quindi la relazione è l'indirizzo Employee HAS-A.

Perché utilizzare l'aggregazione?

  • Per la riusabilità del codice.

Semplice esempio di aggregazione

In questo esempio, abbiamo creato il riferimento della classe Operation nella classe 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); } } 
Provalo adesso
 Output:78.5 

Quando utilizzare l'aggregazione?

  • Il riutilizzo del codice si ottiene anche meglio mediante aggregazione quando non esiste una relazione is-a.
  • L'ereditarietà dovrebbe essere utilizzata solo se la relazione è-a viene mantenuta per tutta la durata degli oggetti coinvolti; in caso contrario, l'aggregazione è la scelta migliore.

Comprendere esempi significativi di aggregazione

In questo esempio, Employee ha un oggetto Indirizzo, l'oggetto indirizzo contiene le proprie informazioni come città, stato, paese, ecc. In tal caso la relazione è Employee HAS-A address.

Indirizzo.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(); } } 
Provalo adesso
 Output:111 varun gzb UP india 112 arun gno UP india 
scarica questo esempio