Was ist Komposition in Java? Mit Beispielen

Veröffentlicht: 2023-01-27

Inhaltsverzeichnis

Grundlagen der Assoziation in Java:

Die Assoziation kann in Java als eine Verbindung zwischen zwei einzelnen Klassen unter Verwendung ihrer unterschiedlichen Objekte definiert werden. Die von der Java-Zuordnung verwalteten Beziehungstypen sind:

  • Eins-zu-Eins: Es gibt nur eine einzige abgeleitete Klasse für jede übergeordnete Klasse.
  • One-to-Many: Eine einzelne Elternklasse kann mehr als eine Kindklasse haben.
  • Viele-zu-eins: Eine einzelne untergeordnete Klasse kann mehr als einer Oberklasse zugeordnet werden.
  • Many-to-many: Eine Anzahl von Elternklassen kann einer einzelnen Kindklasse zugeordnet werden, und eine größere Anzahl von Kindklassen kann einer einzelnen Elternklasse zugeordnet werden.

Sobald die Beziehung hergestellt ist, kommunizieren die abgeleiteten Klassen mit den jeweiligen Basisklassen, um ihre Merkmale und Eigenschaften wiederzuverwenden. Es gibt zwei Arten von Assoziationen in Java. Sie sind Aggregation und Komposition.

Die Aggregation in Java ist im Vergleich zur Komposition ein allgemeinerer Prozess. Diese Formulare basieren auf dem zwischen den Klassen unterstützten Beziehungstyp.

Einführung in die Komposition in Java:

Eine Entwurfstechnik in Java, die eine Has-A-Beziehung implementiert, wird als Komposition bezeichnet. Der Prozess der Vererbung wird verwendet, um den Code wiederzuverwenden. Die Komposition in Java kann durch eine Instanzvariable erfolgen, die auf andere Objekte verweist. Wenn ein Objekt ein anderes Objekt so konstituiert, dass das konstituierende Objekt ohne das Überleben des Hauptobjekts nicht existieren kann, wird die Art der Beziehung als Zusammensetzung bezeichnet. Genauer gesagt ist die Zusammensetzung ein Aspekt, der den Bezug zwischen zwei oder mehreren Klassen mit Hilfe von Instanzvariablen beschreibt. Hier sollte die Instanz erstellt werden, bevor die Instant-Variablen verwendet werden. Nehmen wir zum besseren Verständnis des Begriffs „Komposition“ ein Beispiel einer Bibliothek.

In einer Bibliothek gibt es zahlreiche Bücher. Jedes Buch hat eigene Autoren und Titel. Die Bibliothek sollte auch eine Referenzliste der darin enthaltenen Bücher haben. Die Bibliothek hat auch mehrere Bücher zum gleichen Thema oder zu unterschiedlichen Themen. Dabei entspricht die Bibliothek der Hauptklasse und die Bücher können der abgeleiteten Klasse zugeordnet werden. Die Assoziation oder Beziehung zwischen den Büchern und der Bibliothek kann als Komposition angesehen werden. Das liegt daran, dass die Klasse „Bücher“ vollständig von der Klassenbibliothek abhängig ist. Wenn zum Beispiel die Bibliothek zerstört wird, dann werden auch alle Bücher darin zerstört.

Schauen Sie sich unsere kostenlosen Technologiekurse an, um sich einen Wettbewerbsvorteil zu verschaffen.

Erkunden Sie unsere beliebten Softwareentwicklungskurse

Master of Science in Informatik von LJMU & IIITB Caltech CTME Cybersecurity-Zertifikatsprogramm
Full-Stack-Entwicklungs-Bootcamp PG-Programm in Blockchain
Executive PG-Programm in der Full-Stack-Entwicklung
Sehen Sie sich unten alle unsere Kurse an
Software-Engineering-Kurse

Eine detaillierte Beschreibung der Komposition in Java:

Die Komposition ist eine Form der Java-Assoziation. Die beiden kommunizierenden Klassen sind stark miteinander verknüpft, wobei die abgeleitete Klasse vollständig von der Elternklasse abhängig ist. Die unabhängige Existenz der abgeleiteten Klasse ist in diesem Fall nicht möglich. Zum Beispiel kann ein Motor ohne Auto nicht unabhängig existieren. Dieser Assoziationstyp ist gegenüber der Aggregation stark eingeschränkt. Composition ist eine Entwurfstechnik und sollte nicht mit einer Java-Funktion verwechselt werden.

Die Komposition kann verwendet werden, um Objekte zu modellieren, die andere Objekte als ihre konstituierenden Mitglieder haben. Zwischen diesen Objekten besteht die has-a-Beziehung. Bei diesem Zuordnungstyp enthält ein Objekt das andere Objekt. Daher ist das konstituierende Objekt für sein Überleben vollständig vom Hauptobjekt abhängig. Wenn also das enthaltende Objekt zerstört wird, ist auch das konstituierende Objekt betroffen. Daher kann die Kompositionsbeziehung als Teil der Ganzheitsbeziehung betrachtet werden, in der die Existenz des Teils ohne das Ganze nicht möglich ist. Mit anderen Worten, der Teil wird beim Löschen des Ganzen automatisch gelöscht. Dies impliziert, dass das Ganze eine feste Beziehung zum Teil hat.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Gefragte Fähigkeiten in der Softwareentwicklung

JavaScript-Kurse Core-Java-Kurse Kurse zu Datenstrukturen
Node.js-Kurse SQL-Kurse Full-Stack-Entwicklungskurse
NFT-Kurse DevOps-Kurse Big-Data-Kurse
React.js-Kurse Cyber-Sicherheitskurse Cloud-Computing-Kurse
Datenbankdesign-Kurse Python-Kurse Kryptowährungskurse

Wie unterscheidet sich die Vererbung von der Komposition in Java?

Es ist wichtig zu beachten, dass die Funktionalität der Vererbung auch durch Komposition in Java erreicht werden kann. Obwohl sowohl Vererbung als auch Komposition verwendet werden, um die Wiederverwendbarkeit des Codes durch die entsprechende Klasse zu ermöglichen, gibt es feine Unterschiede zwischen diesen beiden. Der Hauptunterschied zwischen den beiden Prozessen besteht darin, dass die Komposition eine Entwurfstechnik ist, im Gegensatz zur Vererbung, die ein Java-Feature ist. Weitere Hauptunterschiede zwischen den beiden sind in der folgenden Tabelle aufgeführt.

Parameter

Komposition

Nachlass

Basic Es beinhaltet eine HAS-A-Beziehung. Es enthält eine IS-A-Beziehung.
Wiederverwendung von Code Der Code kann in mehreren Klassen wiederverwendet werden. Die Wiederverwendung von Code ist nur in einer Klasse möglich, da nur eine Schnittstelle um eine Klasse erweitert werden kann.
Zielfernrohr Es kann leicht zur Laufzeit durchgeführt werden. Die Funktionen werden zur Kompilierzeit besser ausgeführt.
Finale Es erleichtert die Wiederverwendung von Code sogar aus den endgültigen Klassen. Der Code aus den finalen Klassen kann im Vererbungsfall nicht wiederverwendet werden.
Methoden Die Methoden werden nicht belichtet. Für ihre Interaktion werden öffentliche Schnittstellen verwendet. Die Vererbung macht sowohl geschützte als auch öffentliche Methoden der Basisklasse verfügbar.

Unterschiede zwischen Aggregation und Komposition:

Anhäufung

Komposition

Es ist eine Art schwache Java-Assoziation. Es ist ein stärkerer Assoziationstyp im Vergleich zur Aggregation.
Die abgeleitete Klasse ist unabhängig von der Basisklasse. Daher kann die abgeleitete Klasse auch dann weiter existieren, wenn die Basisklasse zerstört wird. Die abgeleitete Klasse ist vollständig von der Basisklasse abhängig. Daher kann die Unterklasse nicht existieren, wenn die Oberklasse zerstört wird.
Die untergeordnete Klasse hat ihre eigene Lebensdauer. Die Lebensdauer der untergeordneten Klasse hängt von der übergeordneten Klasse ab.
Die übergeordnete Klasse verwendet die untergeordnete Klasse bei dieser Art von Zuordnung. Daher gehört die abgeleitete Klasse nicht der Basisklasse. Bei diesem Assoziationstyp besitzt die übergeordnete Klasse die untergeordnete Klasse. Daher ist die übergeordnete Klasse der Eigentümer der untergeordneten Klasse.
Es stellt eine HAS-A-Beziehung dar. Die abgeleitete Klasse hat eine Basisklasse. Es handelt sich um eine Teilbeziehung. Die abgeleitete Klasse ist ein Teil der Basisklasse.
Das Schlüsselwort final wird nicht verwendet, um eine Aggregation anzugeben. Das letzte Schlüsselwort kann verwendet werden, um die Zusammensetzung zu bezeichnen.
Beispiel: Das Auto hat einen Fahrer. Beispiel: Der Motor ist ein Teil des Autos.

Lesen Sie unsere beliebten Artikel zur Softwareentwicklung

Wie implementiert man Datenabstraktion in Java? Was ist die innere Klasse in Java? Java-Identifikatoren: Definition, Syntax und Beispiele
Verstehen der Kapselung in OOPS mit Beispielen Befehlszeilenargumente in C erklärt Top 10 Merkmale und Merkmale von Cloud Computing im Jahr 2022
Polymorphismus in Java: Konzepte, Typen, Eigenschaften und Beispiele Pakete in Java und wie man sie verwendet? Git-Tutorial für Anfänger: Lernen Sie Git von Grund auf neu

Vorteile der Verwendung von Composition in Java:

  • Die Komposition erleichtert die Wiederverwendung des Java-Codes.
  • Obwohl Mehrfachvererbungen von Java nicht unterstützt werden, kann die Lücke durch diese Entwurfstechnik geschlossen werden.
  • Mit der Verwendung von Komposition kann eine Klasse besser auf ihre Fähigkeiten getestet werden.
  • Der Code wird durch die Verwendung von Komposition flexibler gemacht. Die zusammengesetzte Klassenimplementierung kann durch eine erweiterte Version ersetzt werden.
  • Die Objektmitglieder können zur Laufzeit für die dynamische Änderung des Programmverhaltens unter Verwendung einer Zusammensetzungsbeziehung geändert werden.

Einschränkungen der Komposition in Java:

Es gibt einige Nachteile bei der Verwendung von Komposition in Java. Der Hauptnachteil der Objektkomposition besteht darin, dass es für den Benutzer schwieriger ist, das Verhalten des implementierten Systems zu verstehen, wenn er nur über den Quellcode nachdenkt. Ein System, das eine Objektzusammensetzung verwendet, ist von Natur aus hochdynamisch. Um die Funktionsweise der Systeme zu verstehen, die die Objektzusammensetzung verwenden, ist also eine tiefere Analyse des Quellcodes und die Ausführung des Codes erforderlich, um die Funktionsweise und Zusammenarbeit zwischen den einzelnen Objekten im Quellcode zu bezeugen.

Wenn Sie mehr über Java und Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Softwareentwicklung von upGrad & IIIT-B an – Spezialisierung auf Full-Stack-Entwicklung, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen bietet , 9+ Projekte und Aufgaben, IIIT-B Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Möchten Sie diesen Artikel teilen?

Bereiten Sie sich auf eine Karriere der Zukunft vor

Bewerben Sie sich jetzt für den Master in Software Engineering