Was ist Komposition in Java mit Beispielen?

Veröffentlicht: 2021-04-09

Java ist eine vielseitige Sprache, die objektorientierte Programmierung und Wiederverwendbarkeit von Code unterstützt, indem Beziehungen zwischen zwei Klassen aufgebaut werden. Es gibt zwei Arten von Beziehungen oder Assoziationen in Java, die verwendet werden, um einen Code wiederzuverwenden und die Duplizität von einer Klasse zur anderen zu reduzieren.

Diese Beziehungen sind IS-A (Vererbung) und HAS-A (Assoziation). Während es eine enge Kopplung zwischen den IS-A-Klassen gibt, sind HAS-A-Klassen lose gekoppelt und für die Programmierer bevorzugter.

Die HAS-A-Beziehung ist in zwei Typen unterteilt, nämlich Aggregation und Komposition in Java . Dieser Artikel basiert auf dem OOP- Kompositionskonzept. Wir werden viele Beispiele aus der Praxis sehen, wie die Komposition codiert wird und welche Vorteile die Implementierung bietet.

Inhaltsverzeichnis

Eine kurze Erzählung von Assoziationen oder Beziehungen in Java

Bei der objektorientierten Programmierung sind Objekte miteinander verbunden und verwenden die gemeinsame Funktionalität zwischen ihnen. Hier kommen die Themen Vererbung, Assoziation, Aggregation und Komposition in Java- Programmen ins Spiel.

Vererbung (IS-A) und Assoziation (HAS-A) in Java

1. Vererbung (IS-A)

Eine IS-A-Beziehung bedeutet, dass ein Objekt ein Typ eines anderen ist. Es wird mit den Schlüsselwörtern „extends“ und „implements“ implementiert.

Beispiel: HP IS-A Laptop

2. Assoziation (HAS-A)

Eine HAS-A-Beziehung bedeutet, dass eine Klasse eine Beziehung zu einer anderen Klasse hat. Beispielsweise enthält Klasse A die Referenz von Klasse B und kann auf alle Eigenschaften von Klasse B zugreifen.

Beispiel: Der menschliche Körper HAT-EIN Herz

Quelle

Quelle

3. Aggregation vs. Komposition

Has-A-Beziehung oder Assoziation kann in Aggregation und Zusammensetzung unterteilt werden. Eine Aggregationscontainerklasse und eine referenzierte Klasse können eine unabhängige Existenz haben. Eine Kompositionsreferenzklasse kann nicht existieren, wenn die Containerklasse zerstört wird.

Nehmen wir ein Beispiel, um Aggregation und Zusammensetzung zu verstehen. Ein Auto hat seine Teile, z. B. Motoren, Räder, Musikplayer usw. Das Auto kann nicht ohne Motor und Räder funktionieren, aber ohne Musikplayer. Hier haben der Motor und das Auto eine Kompositionsbeziehung, und das Auto und der Musikplayer haben eine Aggregationsbeziehung. Bei der Aggregation kann ein Objekt existieren, ohne Teil des Hauptobjekts zu sein.

Quelle

Komposition in Java

Eine Komposition in Java zwischen zwei miteinander verbundenen Objekten liegt vor, wenn eine starke Beziehung zwischen einer Klasse und einer anderen besteht. Andere Klassen können nicht ohne den Besitzer oder die übergeordnete Klasse existieren. Beispielsweise ist eine Klasse „Mensch“ eine Zusammensetzung aus Herz und Lunge . Wenn das menschliche Objekt stirbt, existieren keine Teile mehr.

Die Komposition ist eine eingeschränkte Form der Aggregation. In der Komposition schließt eine Klasse eine andere Klasse ein und ist von ihr abhängig, sodass sie ohne eine andere Klasse funktional nicht existieren kann.

Implementierung von Composition in Java

Die Beziehung zwischen Motor und Auto wird wie unten unter Verwendung von Java-Klassen implementiert. In Java wird das Schlüsselwort „final“ verwendet, um Komposition darzustellen. Dies liegt daran, dass das 'Owner'-Objekt erwartet, dass ein Teilobjekt verfügbar ist und funktioniert, indem es es zu 'final' macht .

öffentliche Klasse Auto {

privater Endmotor ;

öffentliches Auto (){

Motor = neuer Motor ();

}

}

Klasse Engine {

privater String-Typ;

}

Nehmen wir ein weiteres Beispiel, das sowohl Vererbung als auch Zusammensetzung darstellt.

Quelle

In diesem Programm ist die Klasse Honda ein Auto und erstreckt sich von der Klasse Auto. Das Automotor-Objekt wird in der Honda-Klasse eingesetzt.

Klasse AutoMotor {

öffentlich void StartEngine(){

System.out.println(“ Der Automotor ist gestartet .”);

}

öffentlich void stopEngine(){

System.out.println(“ Der Automotor hat angehalten .”);

}

}

Klasse Auto {

private String-Farbe;

private int maxi_Geschwindigkeit;

öffentliche Leere autoDetails () {

System.out.println(“Car Color= “+colour + “; Maximum Speed= ” + maxi_Speed);

}

// Farbe des Autos einstellen

public void setColour(Stringfarbe) {

this.colour = Farbe;

}

// Einstellen der maximalen Fahrzeuggeschwindigkeit

public void setMaxiSpeed(int maxi_Speed) {

this.maxi_Speed ​​= maxi_Speed;

}

}

Klasse Honda erweitert Auto{

öffentliche Leere HondaStart () {

CarEngine Honda_Engine = neuer CarEngine(); //Komposition

Honda_Engine.startEngine ();

}

}

öffentliche Klasse Main {

public static void main(String[] args) {

Honda HondaJazz = neuer Honda();

HondaJazz.setColour („Schwarz“);

HondaJazz.setMaxSpeed(160);

HondaJazz.carDetails();

HondaJazz.HondaStart();

}

}

Ausgabe:

Autofarbe = Schwarz; Höchstgeschwindigkeit = 160

Der Automotor ist gestartet.

Die Ausgabe wird mithilfe von Komposition abgeleitet und zeigt die Details des Honda Jazz-Autos.

UML-Bezeichnungen der Assoziation

Die Assoziations-, Aggregations- und Kompositionsbeziehungen in Java zwischen den Klassen A und B werden in UML-Diagrammen wie folgt dargestellt:

Assoziation: A—->B

Zusammensetzung: A—–<gefüllt>B

Aggregation: A—–<>B

Holen Sie sich Software Engineering-Abschlüsse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Vorteile der Komposition in Java

Die Verwendung der Kompositionsdesigntechnik in Java bietet die folgenden Vorteile:

  1. Es ist immer möglich, „die Objektkomposition der Klassenvererbung vorzuziehen“. Klassen erreichen Polymorphie und Wiederverwendung von Code durch Zusammensetzung.
  2. Die Zusammensetzung ist flexibel, wobei Sie die Klassenimplementierung zur Laufzeit ändern können, indem Sie das enthaltene Objekt ändern und sein Verhalten ändern.
  3. Ein kompositionsbasiertes Design hat eine geringere Anzahl von Klassen.
  4. DIE „HAT-A“-Beziehung zwischen Klassen ist semantisch korrekter als die „IS-A“-Beziehung.
  5. Die Komposition in Java bietet eine bessere Klassentestbarkeit, die besonders in der testgetriebenen Entwicklung nützlich ist.
  6. Es ist möglich, „Mehrfachvererbungen“ in Sprachen zu erreichen, indem mehrere Objekte zu einem zusammengesetzt werden.
  7. Bei der Komposition gibt es keinen Konflikt zwischen Methoden oder Eigenschaftsnamen.

Fazit

Komposition in Java bietet viele Vorteile beim Programmieren und ist eine der beliebtesten Entwurfsmethoden. In diesem Artikel haben wir versucht, Ihnen dieses wichtige Konzept mit realen Beispielen und praktischem Code verständlich zu machen. Die Komposition bietet Flexibilität und robusten Code. Die Funktion zur Wiederverwendbarkeit von Code hilft dabei, Codeduplizierung zu vermeiden und Kosteneffizienz zu erreichen. Dies macht es zu einer der weit verbreiteten Methoden in verschiedenen Programmen.

Lernen Sie Komposition in Java mit dem Master of Science von upGrad in einem Informatikkurs , der darauf abzielt, Sie dazu zu bringen, Ihre Fähigkeiten in der Softwareentwicklung zu erlernen und zu verbessern.

Berechtigung

AB Bachelor-Abschluss mit 50 % oder gleichwertige Noten. Es ist keine anfängliche Programmiererfahrung erforderlich.

Preisgestaltung

Die Programmgebühr beginnt bei Rs. 13.095/Monat für Einwohner Indiens und USD 5999 für Einwohner aus dem Ausland.

Landen Sie in Ihrem Traumjob

Bewerben Sie sich für den Master of Science in Machine Learning & AI