graphischeform hirarchie und implementation



  • ich weiß, dass das hier kein forum ist, wo man hausaufgaben löst, aber da ich mir schon viel gedanke drüber gemacht habe und auch schon im internet gesucht habe dachte ich mir, kann mir hier evtl einer einen tipp geben.

    also die aufgabe besteht darin eine hierarchie der objekte
    Quadrat,Linie, Punkt, Viereck, Ellipse, GraphischeForm, Polygon, Kreis, Rechteck, Dreieck, Parallelogramm, Oktogon
    zu erstellen

    hab ich auch gemacht:

    Graphische Form
       |   \    \   \_________________  
       |    \    \__________         | 
       |     \____         |         |
       |         |         |         |
    Polygon    Linie     Punkt    Ellipse
      | \ \__________________        |
      |  \________          |        |
      |          |          |        |
    Viereck   Dreieck    Oktogon   Kreis
      |
    Parallelogram
      |
    Rechteck
      |
    Quadrat
    

    (hoffe man kanns erkennen)

    dies is ja die offensichtlichste hierarchie, die ich auch so des öfteren schon gesehen habe.

    der zweite teil lautet:
    Implementieren Sie diese Klassenhierarchie in Java, so dass für alle Objekte die Form und Position gegeben ist.
    (auf methoden kommt es nicht an)

    hier komme ich auf keinen grünen zweig, wenn ich versuche die oben dargestellte hierarchie umzusetzten. auf diversen internetseiten wurde auch geschrieben, dass das so blödsinn is zu implementieren, da ich z.B. fürs quadrat weniger infos brauche, als fürs rechteck.

    also entweder ich finde eine andere _sinnvolle_ hierarchie, die man besser implementieren kann, oder ich finde einen weg die obere ordentlich zu implementieren.

    also wenn irgendeiner einen vorschlag hat, wie ich das machen kann, bitte schreiben.



  • eine klasse sollte die geerbte basis-klasse immer um zusaetzliche funktionalitaet erweitern.
    zb:
    quadrat (eine kantenlaenge)
    +-rechteck (zusaetzliche kantenlaenge)
    +-parallelogramm (zusaetzlicher winkel)
    usw.



  • ja das hab ich mir auch schon überlegt, dann bekomme ich aber nicht alle klassen in einer hierarchie unter und das ist verlangt.



  • Vererbung ist immer auch eine "ist-ein" Beziehung (und das bedeutet, daß alle Methoden der Oberklasse auch für die Kindklasse anwendbar sein müssen). Und aus objektorientierter Sicht gilt weder Quadrat ist ein Rechteck (set_sides(b,l) macht keinen Sinn für ein Quadrat) noch umgekehrt.

    Von daher wäre so eine Hierarchie am sinnvollsten:

    Graphische Form
    - Polygon
      -?Linie (Zweieck) :)
      - Dreieck
      - Viereck
        - Parallelogramm
        - Rechteck
        - Quadrat
      - Oktogon
    - Linie
    - Punkt
    - Kurve
      - Kreis
      - Ellipse
    

    Edit: Was genau meint eigentlich "Linie"? Eventuell ist das auch eine andere Bezeichung für "Kurve".



  • nach deinem argument würde aber auch die methode set_sides(a,b,c,d) für ein viereck weder für rechteck oder parllelogram noch quadrat passen. isofern ist deine hierarchie in diesem punkt auch nicht ganz passend,

    ich hab mir da folgendes überlegt:

    -GraphischeForm
     -Punkt
      -OberklasseFürLinieKreisUndQuadrat (da alle eine position und eine länge haben)
       -Linie
       -Kreis
        -Ellipse (+radius)
       -Quadrat
        -Rechteck (+seite)
         -Parallelogram (+winkel)
         -Dreieck (+winkel)
          -Viereck (+seite/winkel)
       -Oktogon
    

    da is zwar keine "ist-ein" beziehung drin, aber von der ableitungshierarchie würde das ganz gut passen.
    leider kann ich da das polygon nicht ganz unterbringen, da es eine variable anzahl von ecken/seiten hat.
    aber ich glaube, da kann ich noch bisschen dran rum feilen.



  • MamboKurt schrieb:

    nach deinem argument würde aber auch die methode set_sides(a,b,c,d) für ein viereck weder für rechteck oder parllelogram noch quadrat passen. isofern ist deine hierarchie in diesem punkt auch nicht ganz passend,

    OK, Punkt für dich 😉 Von der Warte wäre die einzig sinnvolle Hierarchie auch: Alles leitet sich von "Graphische Form" ab.



  • ja ich werd mir da schon einen zamrödeln, aber totzdem danke


Anmelden zum Antworten