logo

Aggregatie op Java

Als een klasse een entiteitsreferentie heeft, wordt dit aggregatie genoemd. Aggregatie vertegenwoordigt de HAS-A-relatie.

Java-vergelijking

Beschouw een situatie: het Employee-object bevat veel informatie zoals ID, naam, emailId enz. Het bevat nog een object met de naam adres, dat zijn eigen informatie bevat, zoals stad, staat, land, postcode enz., zoals hieronder weergegeven.

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

In dat geval heeft de Werknemer een referentieadres van de entiteit, dus de relatie is het Werknemer HAS-A-adres.

Waarom aggregatie gebruiken?

  • Voor herbruikbaarheid van codes.

Eenvoudig voorbeeld van aggregatie

In dit voorbeeld hebben we de referentie van de klasse Operation in de klasse Circle gemaakt.

 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); } } 
Test het nu
 Output:78.5 

Wanneer aggregatie gebruiken?

  • Hergebruik van code kan ook het beste worden bereikt door aggregatie als er geen is-een-relatie is.
  • Overerving mag alleen worden gebruikt als de relatie gedurende de hele levensduur van de betrokken objecten in stand blijft; anders is aggregatie de beste keuze.

Een betekenisvol voorbeeld van aggregatie begrijpen

In dit voorbeeld heeft Werknemer het object Adres, het adresobject bevat zijn eigen informatie zoals stad, staat, land enz. In dat geval is de relatie Werknemer HAS-A-adres.

Adres.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(); } } 
Test het nu
 Output:111 varun gzb UP india 112 arun gno UP india 
download dit voorbeeld