Objektkomposition
Erstellen Sie größere Objekte, indem Sie kleinere kombinieren. Die Komposition bildet Has-a-Beziehungen ab, etwa bei einem Car, das einen Engine besitzt.
Objektkomposition ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.
Definition
Komposition bedeutet, ein größeres Objekt aus kleineren Objekten aufzubauen, die es besitzt. Es handelt sich um eine hat-eine-Beziehung: Ein Car hat einen Engine. Dadurch bleiben Klassen klein und fokussiert, und das größere Objekt delegiert Aufgaben an seine Bestandteile.
Vorteile
Komposition erleichtert die Wiederverwendung: Sie können einen Bestandteil austauschen, ohne das gesamte Objekt zu ändern. Außerdem verbessert sie die Testbarkeit, weil jeder Bestandteil separat getestet werden kann. Beginnen Sie einfach: Lassen Sie eine Klasse über Felder von einer anderen abhängen.
Komposition vs. Vererbung
Vererbung beschreibt eine ist-eine-Beziehung (ein Square ist eine Shape). Komposition beschreibt eine hat-eine-Beziehung (ein Car hat einen Engine). Bevorzugen Sie zunächst Komposition und verwenden Sie Vererbung nur, wenn eine echte ist-eine-Beziehung natürlich passt.
Besitz und Lebenszyklus
Wenn ein Objekt seine Bestandteile besitzt, ist es für deren Erstellung und Verwendung verantwortlich. Bestandteile existieren normalerweise nicht unabhängig, sondern weil das gesamte Objekt existiert. Dadurch bleiben Zuständigkeiten klar.
Entwurfsschritte
Wählen Sie das Ganze (Car) und die Bestandteile (Engine). Notieren Sie, was jeder Bestandteil weiß und tut. Fügen Sie dann die Teilobjekte als Felder in das Ganze ein und schreiben Sie kleine Methoden, die diese Bestandteile für ihre Aufgaben verwenden.
Code: Beispiel für hat-eine
Code: Car besitzt einen Engine und ruft dessen Methode auf. Wenn Sie den Bestandteil zuerst erstellen und übergeben, bleibt der Code einfach und flexibel.
public class Main {
// Very small classes to show composition (has-a)
static class Engine {
int horsepower;
Engine(int hp) { horsepower = hp; }
String info() { return horsepower + " HP engine"; }
}
static class Car {
String model;
Engine engine; // Car has an Engine (composition)
Car(String m, Engine e) {
model = m;
engine = e; // store the part
}
void printSpecs() {
// Use the part to build a message
System.out.println(model + " with " + engine.info());
}
}
public static void main(String[] args) {
// Create part first
Engine e = new Engine(90);
// Assemble whole with the part
Car c = new Car("CityCar", e);
// Use the whole, which delegates to its part
c.printSpecs();
}
}
Kompositionsprüfung
Kurzer Check: Welche Aussage beschreibt Komposition am besten?
Zusammenfassung
Zusammenfassung: Komposition modelliert eine hat-eine-Beziehung. Beginnen Sie mit einem kleinen Bestandteil, geben Sie ihm eine klare Aufgabe und lassen Sie das größere Objekt ihn über einfache Methodenaufrufe verwenden.
Häufig gestellte Fragen
Ist die Lektion „Objektkomposition“ kostenlos?
Ja — der vollständige Text von „Objektkomposition“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Objektkomposition“?
Erstellen Sie größere Objekte, indem Sie kleinere kombinieren. Die Komposition bildet Has-a-Beziehungen ab, etwa bei einem Car, das einen Engine besitzt. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.
Wie lange dauert die Lektion „Objektkomposition“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- this und toString/equals/hashCode
- Objektkomposition
- Eine Domäne modellieren (UML→Code)