logo

Apkopošana Java valodā

Ja klasei ir entītijas atsauce, to sauc par apkopošanu. Apkopošana atspoguļo HAS-A attiecības.

binārais koks vs bst

Apsveriet situāciju, Darbinieka objekts satur daudz informācijas, piemēram, ID, vārdu, e-pasta ID utt. Tajā ir vēl viens objekts ar nosaukumu adresi, kurā ir sava informācija, piemēram, pilsēta, valsts, valsts, pasta indekss utt., kā norādīts tālāk.

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

Šādā gadījumā Darbiniekam ir entītijas atsauces adrese, tāpēc attiecības ir Darbinieka HAS-A adrese.

centos vs rhel

Kāpēc izmantot apkopošanu?

  • Koda atkārtotai izmantošanai.

Vienkāršs apkopošanas piemērs

Šajā piemērā mēs esam izveidojuši darbības klases atsauci klasē 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); } } 
Izmēģiniet to tūlīt
 Output:78.5 

Kad tiek izmantota apkopošana?

  • Koda atkārtotu izmantošanu arī vislabāk var panākt, apkopojot, ja nav attiecības.
  • Mantojums ir jāizmanto tikai tad, ja attiecības tiek saglabātas visu iesaistīto objektu dzīves laikā; pretējā gadījumā apkopošana ir labākā izvēle.

Izpratne par jēgpilnu apkopošanas piemēru

Šajā piemērā darbiniekam ir adreses objekts, adreses objekts satur savu informāciju, piemēram, pilsētu, štatu, valsti utt. Šādā gadījumā attiecības ir darbinieka HAS-A adrese.

Adrese.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(); } } 
Izmēģiniet to tūlīt
 Output:111 varun gzb UP india 112 arun gno UP india 
lejupielādējiet šo piemēru