logo

Агрегација у Јави

Ако класа има референцу ентитета, она је позната као агрегација. Агрегација представља ХАС-А однос.

Узмите у обзир ситуацију, Емплоиее објекат садржи многе информације као што су ид, име, емаилИд итд. Садржи још један објекат под називом адреса, који садржи сопствене информације као што су град, држава, држава, поштански број итд. као што је дато испод.

јава свитцх изјава
 class Employee{ int id; String name; Address address;//Address is a class ... } 

У том случају, Запослени има референтну адресу ентитета, тако да је однос Запослени ХАС-А адреса.

шта је стек у Јави

Зашто користити агрегацију?

  • За поновну употребу кода.

Једноставан пример агрегације

У овом примеру смо креирали референцу класе Операција у класи Цирцле.

 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); } } 
Тестирајте одмах
 Output:78.5 

Када користите агрегацију?

  • Поновна употреба кода се такође најбоље постиже агрегацијом када не постоји веза.
  • Наслеђивање треба да се користи само ако се однос ис-а одржава током читавог животног века укључених објеката; иначе, агрегација је најбољи избор.

Разумевање смисленог примера агрегације

У овом примеру, Запослени има објекат Аддресс, објекат адресе садржи сопствене информације као што су град, држава, држава итд. У том случају однос је Емплоиее ХАС-А адреса.

Адреса.јава

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

Емп.јава

 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(); } } 
Тестирајте одмах
 Output:111 varun gzb UP india 112 arun gno UP india 
преузмите овај пример