logo

Aggregointi Javassa

Jos luokassa on entiteettiviittaus, sitä kutsutaan yhdistämiseksi. Aggregaatio edustaa HAS-A-suhdetta.

Tarkastellaan tilannetta, Työntekijä-objekti sisältää monia tietoja, kuten id, nimi, emailId jne. Se sisältää vielä yhden objektin nimeltä osoite, joka sisältää omat tiedot, kuten kaupunki, osavaltio, maa, postinumero jne. kuten alla on annettu.

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

Tässä tapauksessa Työntekijällä on entiteetin viiteosoite, joten suhde on Työntekijän HAS-A-osoite.

java luokkakaavio

Miksi käyttää yhdistämistä?

  • Koodin uudelleenkäytettävyyden vuoksi.

Yksinkertainen esimerkki yhdistämisestä

Tässä esimerkissä olemme luoneet Operation-luokan viittauksen Circle-luokkaan.

 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); } } 
Testaa nyt
 Output:78.5 

Milloin aggregaatiota käytetään?

  • Koodin uudelleenkäyttö saavutetaan myös parhaiten yhdistämällä, kun is-suhdetta ei ole.
  • Periytymistä tulee käyttää vain, jos suhde on-a säilyy mukana olevien objektien koko elinkaaren ajan; muuten yhdistäminen on paras valinta.

Ymmärtää merkityksellinen esimerkki aggregaatiosta

Tässä esimerkissä Työntekijällä on Osoite-objekti, osoiteobjekti sisältää omat tiedot, kuten kaupunki, osavaltio, maa jne. Tällaisessa tapauksessa suhde on Työntekijän HAS-A-osoite.

Osoite.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(); } } 
Testaa nyt
 Output:111 varun gzb UP india 112 arun gno UP india 
lataa tämä esimerkki