Klassen mieinander verknüpfen
-
Hallo!
Wie kann man in Java Klassen mieinander verknüpfen?
Bzw linken?
Klassen die in Beziehung zueinader stehen.
Grüße
-
Es gibt drei Arten von Beziehungen zwischen zwei Klassen
- Assoziation
- Vererbung (Überdeckungsbeziehung)
- Aggregation
Erster Fall ist einfach dass eine Klasse B ein Element von Klasse A als Member beinhaltet. ('HAS-A')
public class A { ... } public class B { private A objectOfA; ... }
Zweiter Fall ist die Vererbung der Eigenschaften A and die Klasse B ('IS-A')
public class A [ ... } public class B extends A { ... }
Aggregation ist der Sonderfall einer Assoziation. Sie drückt ein starkes semantisches Verhältnis von zwei an sich selbständigen Objekten aus, von denen eines Teil des anderen ist ('IS-PART-OF'). Beispiel: Motor ist Teil eines Autos.
-
CengizS schrieb:
Aggregation ist der Sonderfall einer Assoziation. Sie drückt ein starkes semantisches Verhältnis von zwei an sich selbständigen Objekten aus, von denen eines Teil des anderen ist ('IS-PART-OF'). Beispiel: Motor ist Teil eines Autos.
... sowie hier durch eine innere Klasse ...
package Tests; import java.awt.Color; public class Auto { private Color color; private class Motor { private int zyllinder; private int geschwindigkeit; public Motor(int z, int g) { zyllinder = z; geschwindigkeit=g; } } public Auto(Color c) { color = c; } public static void main(String[] args) { Auto auto = new Auto(new Color(0,0,0)); Auto.Motor motor = auto.new Motor(6, 200); //Motor existiert nur dann, wenn auch ein Auto existiert } }
kati
-
@Kati:
Das ist eine etwas philosophische Frage und deswegen nicht immer vollends zu beantworten IMHO. Existiert nämlich ein Motor auch ohne Auto? Eindeutig ja. Existiert auf der anderen Seite ein Auto ohne Motor? Diese Frage ist immer abhängig von der Definition des Autos. Ich für meinen Teil sehe das Ausschlusskriterium in diesem Fall nicht. Ganz stark davon abhängig ist dann auch die Implementation, von der du ja eine Möglichkeit aufgelistet hast.
-
CengizS schrieb:
@Kati:
Das ist eine etwas philosophische Frage und deswegen nicht immer vollends zu beantworten IMHO. Existiert nämlich ein Motor auch ohne Auto?... ja du hast natürlich recht. Es kommt drauf an, wie man das "Universum" definiert.
-
Vielen Dank Cengiz, so eine ausführliche und gute Erklärung kann ja
auch nur von dir kommen.
(Javacore hayirli olsun!)
Mich beschäftigt besonders das Thema "Assoziationen".
Gibt es hierzu Beispiele,Tutorials oder ähnliche Themen?Grüße