f142974eb1 | ||
---|---|---|
.. | ||
readme.md |
readme.md
Vererbung von Figuren
📆 Fällig: 02.04.2023 📆
Lernziel
Einfache Klassen schreiben und eine Vererbungshierarchie bilden.
Aufgabe
Denken Sie bei den folgenden Aufgaben daran, Pakete zu verwenden.
Figur und Rechteck
Im Paket pr2.vererbung.vererbung_geometrie finden Sie Klassen, welche geometrische Figuren repräsentieren.
Die Klasse Figur
soll als einziges Attribut die Fläche der Figur haben. Bieten Sie weiterhin eine Methode getFlaeche()
an, mit der die Fläche wieder ausgelesen werden kann. Sorgen Sie dafür, dass nur Subklassen den Konstruktor dieser Klasse aufrufen können. Machen Sie das Attribut flaeche
private.
Leiten Sie von der Klasse Figur
eine Klasse Rechteck
ab. Das Rechteck soll durch Höhe und Breite beschrieben werden und diese Werte sollen benutzt werden, um die Fläche der Figur zu setzen.
Erweiterung der Figur
Erweitern Sie die Klasse Figur
so, dass man Objekte ohne Angabe einer Fläche erzeugen kann. Diese Objekte sollen dann die Fläche 0
haben. Die Klasse Rechteck
soll weiter funktionieren.
Dreieck
Schreiben Sie eine Klasse Dreieck
, die von der Klasse Figur
abgeleitet ist und über Grundseite und Höhe definiert wird.
Gerade
Schreiben Sie eine Klasse Gerade
, die von Figur
abgeleitet ist und als Attribut die Länge der Geraden hat, deren Fläche aber logischerweise 0
ist.
Quadrat
Schreiben Sie eine Klasse Quadrat
und leiten Sie diese sinnvoll von den bereits vorhandenen Klassen ab. Überlegen Sie sich, welche Informationen Sie für die Berechnung der Fläche benötigen.
Tests
Schreiben Sie Unit-Tests, die die von Ihnen entwickelten Klassen testen.
UML-Diagramm
Zeichnen Sie ein UML-Diagramm von Ihrer Lösung.
Abgabe (optional)
Sie müssen keine Lösung für diese Aufgabe einreichen.
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
- Öffnen Sie eine Kommandozeile (Terminal).
- Gehen Sie in Ihr Working Directory.
- Gene Sie in das Verzeichnis
sources
. - Bauen Sie das Projekt mit dem Kommando
mvn
.