hi,
ich habe folgende Aufgabe:
In dieser Aufgabe sollen Sie eine kleine Geometrie-Bibliothek implementieren. Betrachten Sie dazu die abstrakte Klasse geometry.Geometry in der Bibliothek geometrylib.jar Diese besitzt folgende Methoden:
• dimensions() - Gibt die Anzahl der Dimensionen dieser Geometry zurück. Eine Geometry hat mindestens 2 Dimensionen.
• encapsulate(Geometry other) - Umgibt diese und die übergebene Geometry mit der gleichen Anzahl an Dimensionen mit einer neuen Geometry und gibt diese zurück. Die neue Geometry muss einerseits eine minimale Ausdehnung haben und andererseits diese und die übergebene Geometry vollständig enthalten. Wenn zwei Geometry - Instanzen eine un- terschiedliche Anzahl an Dimensionen haben, wird null zurückgeliefert.
• volume() - Gibt das Volumen einer Geometry als double zurück. Im zweidimensionalen Fall ist dies die Fläche einer Geometry.
Erweitern Sie die Klasse Geometry nun um die folgenden Klassen.
• Point2D-EinzweidimensionalerPunktdermitzweidouble-Wertenerzeugtwerdenkann.
• Point - Repräsentiert einen n-dimensionalen Datenpunkt, der mit einer variablen Parameter- liste von double - Werten erzeugt werden kann.
• Rectangle - Ein Rechteck, das mit zwei Objekten vom Typ Point2D erzeugt werden kann.
• Volume - Ein Volume kann durch zwei n-dimensionale Punkte erzeugt werden, die ein recht-
winkliges Volumen aufspannen, dessen Kanten alle achsenparallel verlaufen.
1
Implementieren Sie in allen Geometry - Typen das Interface Comparable mit der Me- thode compareTo(Object o). Diese soll zwei Instanzen vom Typ Geometry immer an- hand ihres Volumens miteinander vergleichen. Bei der Implementierung können Sie die War- nung des Compilers Comparable is a raw type. References to generic type Comparable should be parameterizedignorieren.
Ordnen Sie diese Klassen in der Vererbungshierarchie möglichst geschickt an, um sich unnötige Ar- beit zu ersparen. Achten Sie immer auf Information Hiding und machen Sie so wenige Datenfelder und Methoden wie möglich sichtbar. Sorgen Sie dafür, dass keine inkonsistenten Instanzen entstehen können.
Schreiben Sie außerdem eine separate Testklasse, die automatisch jede der implementierten Funktio- nen testet.
Hinweis
Sie können sich viel Arbeit ersparen, in dem Sie erst überlegen, wie der eindimensionale Fall aussieht und diesen dann auf n Dimensionen übertragen.
Ich verstehe nicht was ich mit der jar Datei machen soll? Soll ich die Datei in das Projekt einbinden??