logo

Aggregation in Java

Wenn eine Klasse eine Entitätsreferenz hat, wird dies als Aggregation bezeichnet. Aggregation stellt eine HAS-A-Beziehung dar.

Stellen Sie sich eine Situation vor: Das Mitarbeiterobjekt enthält viele Informationen wie ID, Name, E-Mail-ID usw. Es enthält ein weiteres Objekt mit dem Namen Adresse, das seine eigenen Informationen wie Stadt, Bundesland, Land, Postleitzahl usw. enthält, wie unten angegeben.

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

In einem solchen Fall verfügt der Mitarbeiter über eine Entitätsreferenzadresse, sodass die Beziehung die HAS-A-Adresse des Mitarbeiters ist.

Warum Aggregation verwenden?

  • Für die Wiederverwendbarkeit von Code.

Einfaches Beispiel für Aggregation

In diesem Beispiel haben wir die Referenz der Operation-Klasse in der Circle-Klasse erstellt.

 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); } } 
Testen Sie es jetzt
 Output:78.5 

Wann wird Aggregation verwendet?

  • Die Wiederverwendung von Code lässt sich auch am besten durch Aggregation erreichen, wenn keine Ist-Ein-Beziehung besteht.
  • Vererbung sollte nur verwendet werden, wenn die is-a-Beziehung während der gesamten Lebensdauer der beteiligten Objekte aufrechterhalten wird; Andernfalls ist die Aggregation die beste Wahl.

Verstehen eines aussagekräftigen Beispiels der Aggregation

In diesem Beispiel hat der Mitarbeiter das Objekt „Adresse“. Das Adressobjekt enthält seine eigenen Informationen wie Stadt, Bundesland, Land usw. In diesem Fall ist die Beziehung die HAS-A-Adresse des Mitarbeiters.

Adresse.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(); } } 
Testen Sie es jetzt
 Output:111 varun gzb UP india 112 arun gno UP india 
Laden Sie dieses Beispiel herunter