logo

צבירה בג'אווה

אם למחלקה יש הפניה לישות, היא ידועה בשם צבירה. צבירה מייצגת יחסי HAS-A.

צמת רשימה

שקול מצב, אובייקט עובד מכיל מידע רב כגון id, name, emailId וכו'. הוא מכיל אובייקט אחד נוסף בשם כתובת, המכילה מידע משלו כגון עיר, מדינה, מדינה, מיקוד וכו' כפי שמופיע להלן.

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

במקרה כזה, לעובד יש כתובת אסמכתא של ישות, כך שהקשר הוא כתובת HAS-A לעובד.

למה להשתמש בצבירה?

  • לשימוש חוזר בקוד.

דוגמה פשוטה של ​​צבירה

בדוגמה זו, יצרנו את ההפניה של מחלקה Operation במחלקה 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); } } 
בדוק את זה עכשיו
 Output:78.5 

מתי משתמשים בצבירה?

  • שימוש חוזר בקוד מושג בצורה הטובה ביותר על ידי צבירה כאשר אין קשר.
  • יש להשתמש בירושה רק אם מערכת היחסים נשמרת לאורך כל חיי החפצים המעורבים; אחרת, צבירה היא הבחירה הטובה ביותר.

הבנת דוגמה משמעותית של צבירה

בדוגמה זו, לעובד יש אובייקט של כתובת, אובייקט כתובת מכיל מידע משלו כגון עיר, מדינה, מדינה וכו'. במקרה כזה הקשר הוא כתובת HAS-A לעובד.

Address.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(); } } 
בדוק את זה עכשיו
 Output:111 varun gzb UP india 112 arun gno UP india 
הורד את הדוגמה הזו