aggregering er et udtryk, der bruges til at henvise til envejsforhold mellem to objekter. For eksempel kan Elevklasse have reference til Adresseklasse, men omvendt giver ikke mening.
i Java repræsenterer aggregering har-et forhold, hvilket betyder, når en klasse indeholder reference til en anden klasse, der vides at have aggregering.
HAS-a-forholdet er baseret på brug snarere end arv. Med andre ord har klasse A-et forhold til klasse B, hvis klasse A har en henvisning til en forekomst af klasse B.
lad os forstå det med et eksempel og overveje to klasser studerende og adresse. Hver elev har egen adresse, der gør har-et forhold, men Adresse har studerende ikke giver mening. Vi kan forstå det mere tydeligt ved hjælp af Java-kode.
her i ovenstående kode kan vi se Student class has-a relation til Address class. Vi har også tegnet et billede for at demonstrere forholdet mellem disse to klasser..
Student
klassen har en forekomstvariabel af typenAddress
. Da vi har en variabel af typen Address
i Student
klasse, kan den bruge Adressereference, som er ad
i dette tilfælde at påberåbe metoder til Address
klasse.
fordel ved aggregering
den største fordel ved at bruge aggregering er at opretholde kodegenanvendelighed. Hvis en enhed har en relation til en anden enhed, end den kan genbruge kode bare ved at henvise til det.
Aggregeringseksempel
lad os nu forstå det ved hjælp af et eksempel, her oprettede vi to klasser forfatter-og bog-og Bogklasse har en relation til Forfatterklasse ved at have sin reference. Nu er vi i stand til at få alle egenskaber i begge klasser.
Bognavn: Java til BegginerBook pris: 800————forfatter detaljer———-Auther navn: JohnAuther alder: 42auther sted: USA
lad os tage endnu et eksempel for at forstå aggregering. Antag, at vi har endnu en Klasseudgiver, så kan Bogklassen genbruge Udgiverklassedetaljer ved blot at bruge dens reference som Forfatterklasse. Lad os forstå det ved Java-kode.
sammensætning i Java
sammensætning er en mere begrænset form for aggregering. Sammensætning kan beskrives som når en klasse, der omfatter en anden klasse, er afhængig af den på en sådan måde, at den ikke funktionelt kan eksistere uden den klasse, der er inkluderet. For eksempel kan en klasse Car
ikke eksistere uden Engine
, da det ikke længere fungerer.
derfor ordet sammensætning, som betyder de elementer, noget er lavet af, og hvis vi ændrer sammensætningen af ting, de ændrer, på samme måde i Java klasser, en klasse inklusive en anden klasse kaldes en sammensætning, hvis klassen inkluderet giver kerne funktionel betydning til den ydre klasse.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
Her ved at undersøge kode kan vi forstå, at hvis bilklasse ikke har forhold til Motorklasse, har bilen ikke eksistens.
sammensætning er en designteknik, ikke et træk ved Java, men vi kan opnå det ved hjælp af Java-kode.
K. Hvornår skal man bruge arv og sammenlægning?
når du vil bruge en egenskab eller adfærd i en hvilken som helst klasse uden krav om at ændre den eller tilføje mere funktionalitet til den, er aggregering i så fald en bedre mulighed, fordi I tilfælde af aggregering bruger vi bare en ekstern klasse inde i vores klasse som en variabel.
mens du vil bruge og ændre nogle egenskaber eller adfærd i en ekstern klasse eller måske vil tilføje flere funktioner oven på det, er det bedst at bruge arv.
for at forstå mere om arv, kan du besøge vores detaljerede tutorial her. Klik her for at se arv i Java