L2P-Academy / Fach_UEM1

2 stars 1 forks source link

Bitte um Aufgabe #26

Open Rakinos89 opened 6 months ago

Rakinos89 commented 6 months ago
  1. Klassen, Vererbung, Methoden, Polymorphie, Instanziierung

oder

  1. Logik, Datenverarbeitung
L2P-Academy commented 6 months ago

Alles klar 😄 Aufgabenstellung:

  1. Da es bald etwas komplexer wird - erstellen Sie sich bitte ein neues Package im Projekt. Ziehen Sie ihre bisherige Klasse dort hinein (falls benötigt) oder löschen Sie diese. Dazu in Eclipse auf den src-Ordner -> New -> Package und benennen Sie es mit "Geometric Shapes"
  2. Erstellen Sie eine neue Klasse "Shape", die als abstrakte Klasse für alle geometrischen Formen dient. Legen Sie dort eine Methode "calculateArea" zur Flächenberechnung der Formen an.
  3. Legen Sie 2 Klassen Ihrer Wahl im neuen Package an, z.B. Rectangle.java und Triangle.java (für Rechteck und Dreieck). Diese benötigen Attribute wie Länge und Breite als Variablen. Beide Klassen müssen von "Shape" mit dem Schlüsselwort "extends" erben, da es Formen sind. Auch die Methode "calculateArea" sollte bei beiden entsprechend der Form vorhanden sein.
  4. Testen Sie die Funktion in der Main-Klasse, aber bitte nicht mit pushen bzw. Änderungen dort rückgängig machen.
  5. Zusatz: Sie können auch schwierigere Formen einbinden, wie Kreise oder Sechsecke, wenn es zu leicht ist ;)
  6. Das Ziel ist, dass Sie später in der Main für jede geometrische Form nur noch Zahlen eingeben, wenn die Methode aufgerufen wird und ein Flächeninhalt berechnet werden kann.
L2P-Academy commented 6 months ago

Erweiterung der Aufgabe: Versuchen Sie, in der Konsole ein Rechteck zu zeichnen, welches die Eingaben aus der Objekterzeugung verwendet. Beispielsweise Länge 3 und Breite 5:

grafik

Sie brauchen dazu eine neue Methode "drawRectangle" in der entsprechenden Klasse. Versuchen Sie das gleiche mit dem Dreieck, bei Kreisen wird es etwas schwierig. Tipp: Verwenden Sie Zeichen wie Unterstrich, Oder-Zeichen | und Leerzeichen, falls benötigt. Das ganze könnte man auch mit einer richtigen GUI machen, aber da wäre der Aufwand deutlich höher.