8.582
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 4: | Zeile 4: | ||
== Ober- und Unterklassen == | == Ober- und Unterklassen == | ||
Am besten verdeutlicht dies ein Beispiel: Nehmen wir an, es soll ein geometrisches Zeichenprogramm nach folgender Beschreibung umgesetzt werden. | Am besten verdeutlicht dies ein Beispiel: Nehmen wir an, es soll ein geometrisches Zeichenprogramm nach folgender Beschreibung umgesetzt werden. | ||
{{Schublade|Es gibt verschiedene Formen wie Rechteck, Dreieck und Quadrat. Jede Form besitzt eine x- und y-Koordinate, eine | {{Schublade|Es gibt verschiedene Formen wie Rechteck, Dreieck und Quadrat. Jede Form besitzt eine x- und y-Koordinate, eine Richtung und eine Farbe. Formen können versetzt und gedreht werden. Rechtecke besitzen zwei Seitenlängen. Bei Quadraten sind beide Seitenlängen gleich. Dreiecke werden über zwei Punkte festgelegt, die auch eine x- und y-Koordinate besitzen. Die dritte Ecke wird durch die Position des Dreiecks festgelegt.}} | ||
Ein erstes Implementierungsdiagramm ohne Vererbung könnte so aussehen: | Ein erstes Implementierungsdiagramm ohne Vererbung könnte so aussehen: | ||
<graphviz> | <graphviz> | ||
digraph G { | |||
fontname = "Bitstream Vera Sans" | |||
fontsize = 8 | |||
rankdir = BT | |||
node [fontname = "Bitstream Vera Sans";fontsize = 8;shape = "record"] | |||
edge [fontname = "Bitstream Vera Sans";fontsize = 8] | |||
Punkt [label = "{Punkt|- x : int\l- y : int\l|+ Punkt(pX : int, pY : int)\l}"] | |||
Form [label = "{Form|- x : int\l- y : int\l- richtung : double\l|+ Form(pX : int, pY : int, pRichtung : double)\l+ versetzen(pX : int, pY : int) : void\l+ drehen(pGrad : double) : void\l}"] | |||
Rechteck [label = "{Rechteck|- x : int\l- y : int\l- richtung : double\l- a : int\l- b : int\l|+ Rechteck(pX : int, pY : int, pRichtung : double, pA : int, pB : int)\l+ versetzen(pX : int, pY : int) : void\l+ drehen(pGrad : double) : void\l}"] | |||
Quadrat [label = "{Quadrat|- x : int\l- y : int\l- richtung : double\l- a : int\l- b : int\l|+ Quadrat(pX : int, pY : int, pRichtung : double, pA : int)\l+ versetzen(pX : int, pY : int) : void\l+ drehen(pGrad : double) : void\l}"] | |||
Dreieck [label = "{Dreieck|- x : int\l- y : int\l- richtung : double\l- punktA : Punkt\l- punktB : Punkt\l|+ Dreieck(pX : int, pY : int, pRichtung : double, pA : Punkt, pB : Punkt)\l+ versetzen(pX : int, pY : int) : void\l+ drehen(pGrad : double) : void\l}"] | |||
edge [arrowhead = "open", style="dashed"] | |||
Dreieck -> Punkt | |||
} | |||
</graphviz> | </graphviz> | ||
| Zeile 13: | Zeile 30: | ||
<graphviz> | <graphviz> | ||
digraph G { | digraph G { | ||
fontname = "Bitstream Vera Sans" | |||
fontsize = 8 | |||
rankdir = BT | |||
node [fontname = "Bitstream Vera Sans";fontsize = 8;shape = "record"] | |||
edge [fontname = "Bitstream Vera Sans";fontsize = 8] | |||
Form [label = "{Form|- x : int\l- y : int\l- | Punkt [label = "{Punkt|- x : int\l- y : int\l|+ Punkt(pX : int, pY : int)\l}"] | ||
Rechteck [label = "{Rechteck|- a : int\l- b : int|\l}"] | Form [label = "{Form|- x : int\l- y : int\l- richtung : double\l|+ Form(pX : int, pY : int, pRichtung : double)\l+ versetzen(pX : int, pY : int) : void\l+ drehen(pGrad : double) : void\l}"] | ||
Quadrat [label = "{Quadrat||+ Quadrat( pA : int )\l}"] | Rechteck [label = "{Rechteck|- a : int\l- b : int\l|+ Rechteck(pX : int, pY : int, pRichtung : double, pA : int, pB : int)\l}"] | ||
Quadrat [label = "{Quadrat||+ Quadrat(pX : int, pY : int, pRichtung : double, pA : int)\l}"] | |||
Dreieck [label = "{Dreieck|- punktA : Punkt\l- punktB : Punkt\l|+ Dreieck(pX : int, pY : int, pRichtung : double, pA : Punkt, pB : Punkt)\l}"] | |||
edge [arrowhead = "empty"] | edge [arrowhead = "open", style="dashed"] | ||
Rechteck -> Form | Dreieck -> Punkt | ||
Quadrat -> Rechteck | edge [arrowhead = "empty", style="normal"] | ||
Dreieck -> Form | |||
Rechteck -> Form | |||
Quadrat -> Rechteck | |||
} | } | ||
</graphviz> | </graphviz> | ||