agregarea este un termen care este folosit pentru a se referi la relația într-un fel între două obiecte. De exemplu, clasa de Student poate avea referința clasei de adrese, dar invers nu are sens.
în Java, agregarea reprezintă relația HAS-A, ceea ce înseamnă că atunci când o clasă conține referința unei alte clase despre care se știe că are agregare.
relația HAS-A se bazează pe utilizare, mai degrabă decât pe moștenire. Cu alte cuvinte, clasa A are-o relație cu clasa B, dacă clasa A are o referință la o instanță a clasei B.
să o înțelegem printr-un exemplu și să luăm în considerare două clase elev și adresă. Fiecare student are propria adresă care face are-o relație, dar adresa are student nu are nici un sens. O putem înțelege mai clar folosind codul Java.
aici, în codul de mai sus, putem vedea clasa de Student are-o relație cu clasa adresa. Avem trage o imagine prea pentru a demonstra relația dintre aceste două clase..
Student
clasa are o variabilă de instanță de tipAddress
. Deoarece avem o variabilă de tipAddress
înStudent
clasa, se poate folosi adresa de referință, care estead
în acest caz, pentru a invoca metode deAddress
clasa.
avantajul agregării
principalul avantaj al utilizării agregării este menținerea reutilizării codului. Dacă o entitate are o relație cu o altă entitate decât aceasta poate reutiliza codul doar referindu-se la aceasta.
exemplu de agregare
acum, vă permite să-l înțeleagă, folosind un exemplu, aici am creat două clase autor și carte și carte de clasă are o relație cu clasa autor de a avea de referință. Acum putem obține toate proprietățile ambelor clase.
numele cărții: Java pentru prețul cărții de început: 800————detalii autor———-Auther nume: JohnAuther vârstă: 42Auther loc: SUA
Să luăm încă un exemplu pentru a înțelege agregarea. Să presupunem că avem încă un editor de clasă, atunci clasa de carte poate reutiliza detaliile clasei editorului doar folosind referința sa ca clasă de autor. Vă permite să-l înțeleagă prin cod Java.
compoziția în Java
compoziția este o formă mai restrânsă de agregare. Compoziția poate fi descrisă ca atunci când o clasă care include o altă clasă depinde de ea în așa fel încât nu poate exista funcțional fără clasa care este inclusă. De exemplu, o clasăCar
nu poate exista fărăEngine
, deoarece nu va mai fi funcțională.
de aici și cuvântul compoziție care înseamnă elementele din care este făcut ceva și dacă schimbăm compoziția lucrurilor pe care le schimbă, în mod similar în clasele Java, o clasă care include o altă clasă se numește compoziție dacă clasa inclusă oferă semnificație funcțională de bază clasei exterioare.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
aici examinând codul, putem înțelege că dacă clasa auto nu are relație cu clasa motorului, atunci mașina nu are existență.
compoziția este o tehnică de proiectare, nu o caracteristică a Java, dar o putem realiza folosind codul Java.
Î. Când să folosiți Moștenirea și agregarea?
când doriți să utilizați o proprietate sau un comportament al oricărei clase fără cerința de a o modifica sau de a adăuga mai multe funcționalități, în acest caz agregarea este o opțiune mai bună, deoarece în caz de agregare folosim doar orice clasă externă din clasa noastră ca variabilă.
în timp ce atunci când doriți să utilizați și să modificați o proprietate sau un comportament al oricărei clase externe sau poate doriți să adăugați mai multe funcții pe partea de sus a acesteia, este mai bine să utilizați moștenirea.
pentru a înțelege mai multe despre moștenire, puteți vizita tutorialul nostru detaliat aici. Click aici pentru a vedea moștenirea în Java