Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo leute ich will einen JavaCode in ein Uml Klassendiagram umschreiben.Ich hab ein Problem woran erkenn ich am code explizit die aggregation bzw. Komposition
Das ist der folgende Code:
Java:
1 package auto ;
2 import auto . motor . Motorblock ;
3 import auto . elektronik .*;
4 public class Fahrzeug {
5 private String firma ;
6 private String modell ;
7 private Motorblock motorblock ;
8 private ISteuergeraet [] steuergeraete ;
9
10 public Fahrzeug () {
11 motorblock = new Motorblock ();
12 steuergeraete = new ISteuergeraet [2];
13 steuergeraete [0] = new MotorSteuergeraet ();
14 steuergeraete [1] = new AirbagSteuergeraet ();
15 }
16
17 public String gibModell () {
18 return modell ;
19 }
20 ...
21 }
22
23 package auto . elektronik ;
24 public interface ISteuergeraet {
25 public abstract void setzeMesswert ( int wert );
26 public abstract void liesMesswert ();
27 public abstract void reset ();
28 }
29
30 package auto . elektronik ;
31 public class AirbagSteuergeraet extends ASteuergeraet {
32 ...
33 }
34 package auto . elektronik ;
35 public class MotorSteuergeraet extends ASteuergeraet {
36 ...
37 }
38
39 package auto . elektronik ;
40 public class ASteuergeraet implements ISteuergeraet {
41
42 public void setzeMesswert (int wert ) {
43 ...
44 }
45
46 public void liesMesswert () {
47 ...
48 }
49
50 public void reset () {
51 ...
52 }
53 }
54
55 package auto . motor ;
56 public class Motorblock {
57 private Zuendkerzen zuendkerzen ;
58 private Zylinder zylinder ;
59 ...
60 }
61
62 package auto . motor ;
63 public class Zuendkerzen {
64 ...
65 }
66
67 package auto . motor ;
68 public class Zylinder {
69 ...
70 }
[\JAVA]
Eine Aggregation ist ja eine ist-teil-beziehung zwischen zwei klassen
komposition ist eine existenzabhängige ist-teil beziehung zwischen zwei klassen
aber woran erkenn ich das explizit an diesem java code.mir ist klar wie das diagramm aufstellen.nur das mit der Komposition und Aggregation kann ich hier nicht sehen.Gibt es da irgendwelche Parameter?
Danke für Hilfe
beste grüße
medicus
public Fahrzeug () {
motorblock = new Motorblock (); // motorblock wird Motorblock zugewiesen
steuergeraete = new ISteuergeraet [2]; // Es wird ein array steuergerate der Länfe 2 angelegt
steuergeraete [0] = new MotorSteuergeraet (); // dem ersten Feldinhalt wird MotorSteuergeraet zugewiesen
steuergeraete [1] = new AirbagSteuergeraet (); // dem zweiten Feldinhalt wird Airbagsteuergeraete zugewiesen => daraus folgt das eine existenzabhängige ist-teil beziehung zwischen der Klasse Fahrzeug und der Klasse Airbag steuergerate besteht
}
Die Antwort kann man so nicht einfach an ein paar Parametern sehen.
Die Definition ob es sich dabei um eine Komposition handelt, läßt sich nur aus dem Programmablauf ableiten.
Sprich, wenn die Komponente entfernt würde und das Programm stürzt ab, dann hast du deine Komposition, ansonsten nicht.
Die Antwort kann man so nicht einfach an ein paar Parametern sehen.
Die Definition ob es sich dabei um eine Komposition handelt, läßt sich nur aus dem Programmablauf ableiten.
Sprich, wenn die Komponente entfernt würde und das Programm stürzt ab, dann hast du deine Komposition, ansonsten nicht.
In diesem Fall reicht es doch zu wissen dass man ohne [c]Motorblock[/c], [c]MotorSteuergeraet[/c] und [c]AirbagSteuergeraet[/c] kein [c]Fahrzeug[/c] erzeugen kann -> Komposition.
Der Unterschied zwischen Aggregation und Komposition liegt darin, dass die enthaltenen Objekte existenziell abhängig sind vom Aggregations-Objekt, d.h., wird das Aggregations-Objekt zerstört, sind auch die enthaltenen Objekte nicht mehr existent.
Nein, das denke ich so nicht, Komposition und Aggregation sind so gesehen keine programmiertechnischen, sondern theorhetische Konstrukte.
Daher, selbst wenn er sie beim Erzeugen des Objektes abhängige Objekte anlegt, heißt das nicht, das das Fahrzeug ohne diese nicht auch ein gültiges Objekt bleibt. Ein Auto fährt ja schließlich auch ohne ABS.