logo

Agregare în Java

Dacă o clasă are o referință la entitate, aceasta este cunoscută sub numele de agregare. Agregarea reprezintă relația HAS-A.

Luați în considerare o situație, obiectul Employee conține multe informații, cum ar fi id, nume, emailId etc. Conține încă un obiect numit adresă, care conține propriile informații, cum ar fi oraș, stat, țară, cod poștal etc., așa cum este prezentat mai jos.

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

În acest caz, Angajatul are o adresă de referință a entității, deci relația este adresa Angajatului HA-A.

De ce să folosiți agregarea?

  • Pentru reutilizarea codului.

Exemplu simplu de agregare

În acest exemplu, am creat referința pentru clasa Operation în clasa 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); } } 
Testează-l acum
 Output:78.5 

Când folosiți agregarea?

  • Reutilizarea codului se realizează cel mai bine prin agregare atunci când nu există o relație.
  • Moștenirea ar trebui utilizată numai dacă relația este-a este menținută pe toată durata de viață a obiectelor implicate; în caz contrar, agregarea este cea mai bună alegere.

Înțelegerea unui exemplu semnificativ de agregare

În acest exemplu, Angajatul are un obiect Adresă, obiectul Adresă conține propriile sale informații, cum ar fi orașul, statul, țara etc. În acest caz, relația este adresa Angajatului HA-A.

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(); } } 
Testează-l acum
 Output:111 varun gzb UP india 112 arun gno UP india 
descărcați acest exemplu