Aggregation is een term die wordt gebruikt om een weg relatie tussen twee objecten te verwijzen. Bijvoorbeeld, Student class kan referentie van adresklasse hebben, maar vice versa heeft geen zin.
in Java vertegenwoordigt aggregatie HAS-A relatie, wat betekent dat wanneer een klasse een referentie bevat van een andere klasse waarvan bekend is dat ze aggregatie heeft.
De HAS-A relatie is gebaseerd op gebruik, in plaats van overerving. Met andere woorden, Klasse A heeft-een relatie met klasse B, als Klasse A een verwijzing heeft naar een instantie van klasse B.
laat het begrijpen door een voorbeeld en rekening houden met twee klassen Student en adres. Elke student heeft een eigen adres dat maakt heeft-een relatie, maar adres heeft student heeft geen zin. We kunnen het beter begrijpen met behulp van Java-code.
hier in de bovenstaande code kunnen we zien dat Student class een relatie heeft met Address class. We hebben ook een beeld getekend om de relatie tussen deze twee klassen aan te tonen..
De Student
klasse heeft een instance variabele van het type Address
. Aangezien we een variabele van het type Address
in de Student
klasse hebben, kan het adres referentie die ad
in dit geval gebruiken, om methoden van de Address
klasse aan te roepen.
voordeel van aggregatie
het belangrijkste voordeel van aggregatie is het behoud van de herbruikbaarheid van de code. Als een entiteit een relatie heeft met een andere entiteit dan kan ze code hergebruiken door dat te verwijzen.
Aggregatie voorbeeld
laat het nu begrijpen door gebruik te maken van een voorbeeld, hier hebben we twee klassen auteur en boek en boek klasse heeft een relatie met auteur klasse door het hebben van zijn referentie. Nu zijn we in staat om alle eigenschappen van beide klasse te krijgen.
Book Name: Java for BegginerBook Price: 800————Details van auteur———-Auter naam: JohnAuther leeftijd: 42Auther plaats: USA
laten we nog een voorbeeld nemen om aggregatie te begrijpen. Stel dat we nog een class Publisher hebben dan kan de Book class details van de Publisher class hergebruiken door de referentie als auteur class te gebruiken. Laat het begrijpen door Java-code.
samenstelling in Java
samenstelling is een beperktere vorm van aggregatie. Compositie kan worden omschreven als wanneer een klasse die een andere klasse omvat, ervan afhankelijk is op een zodanige wijze dat het functioneel niet kan bestaan zonder de klasse die is opgenomen. Bijvoorbeeld een klasse Car
kan niet bestaan zonder Engine
, omdat deze niet meer functioneel zal zijn.
vandaar het woord compositie wat betekent dat de items waar iets van gemaakt is en als we de samenstelling van dingen veranderen veranderen ze, op dezelfde manier in Java klassen, wordt een klasse met een andere klasse een compositie genoemd als de klasse die inbegrepen is de kern functionele betekenis geeft aan de buitenste klasse.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
door de code te onderzoeken, kunnen we begrijpen dat als de auto-Klasse geen relatie heeft met de motor-klasse, de auto niet bestaat.
compositie is een ontwerptechniek, geen kenmerk van Java, maar we kunnen het bereiken met Java-code.
Q. Wanneer overerving en aggregatie gebruiken?
wanneer u een eigenschap of gedrag van een klasse wilt gebruiken zonder dat u deze moet wijzigen of meer functionaliteit moet toevoegen, is aggregatie in dat geval een betere optie omdat we in het geval van aggregatie gewoon een externe klasse binnen onze klasse als variabele gebruiken.
terwijl wanneer u een eigenschap of gedrag van een externe Klasse wilt gebruiken en wijzigen of er mogelijk meer functie bovenop wilt toevoegen, het het beste is om overerving te gebruiken.
voor meer informatie over overerving kunt u onze gedetailleerde handleiding hier bezoeken. Klik hier om overerving in Java te zien