Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2004 W
| Ausgabe: | 04.11.2004 |
| reguläre Abgabe: | 11.11.2004, 12:45 Uhr |
| nachträgliche Abgabe: | 18.11.2004, 12:45 Uhr |
public abstract class Polygon {
public abstract void draw();
// draws a polygon on the screen
}
Entwickeln Sie konkrete Unterklassen AsciiCircleund
AsciiEllipsevon
Polygon. Die Methode
drawsoll mit ASCII-Zeichen gefüllte Kreise beziehungsweise Ellipsen in die Standardausgabe schreiben. In einer Instanz von
AsciiEllipsesoll
drawn Zeilen mit jeweils m Zeichen ausgeben. Das Zentrum der Ausgabe soll in Form einer Ellipse der Breite m und Höhe n aus Zeichen c bestehen, außerhalb der Ellipse sollen nur Leerzeichen stehen. Die nicht-negativen Zahlen n und m sowie das Zeichen c sollen in der Instanz fest gelegt sein. Für
AsciiCirclegilt sinngemäß dasselbe, wobei n und m gleich sind. Es soll möglich sein, die Dimensionen eines Kreises und einer Ellipse sowie das ASCII-Zeichen (beim nächsten Aufruf von
drawwirksam) jederzeit von außen zu ändern, ohne dass es dabei zu Fehlermeldungen oder Exceptions kommt. Überlegen Sie, ob
AsciiCircleein Untertyp von
AsciiEllipseoder
AsciiEllipseein Untertyp von
AsciiCircleist, oder ob überhaupt keine Untertypbeziehung besteht. Überlegen Sie auch, ob zwischen
Polygonund
AsciiCirclebeziehungsweise
AsciiEllipseweitere abstrakte Klassen stehen sollen. Wenn ja, schreiben Sie diese. Verwenden Sie Vererbung (extends-Klausel) genau dort wo eine Untertypbeziehung besteht. Versehen Sie Klassen und Methoden mit Zusicherungen in Form von Kommentaren. Schreiben Sie auch ein einfaches Programm zum Testen Ihrer Lösung.
Ziel der Aufgabe ist das Verstehen von Untertypbeziehungen (Skriptum bis Seite 70). Direkte Codewiederverwendung durch Vererbung ist für diese Aufgabe irrelevant. Achten Sie auf Ersetzbarkeit und Zusicherungen.
Schreiben Sie Ihre Lösung in den Ordner Aufgabe04
in Ihrem
Gruppen-Verzeichnis auf dem Übungsrechner. Das Programm soll von
Aufgabe04
aus durch java Test
aufrufbar sein. Der Ordner sollen
zum Zeitpunkt der Abgabe (11.11.2004, 12:45 Uhr) und nachträglichen
Abgabe (18.11.2004, 12:45 Uhr) alle .java-Dateien enthalten, die Sie für
Ihre Lösung benötigen. Bitte entfernen Sie alle .java-Dateien, die
nicht zur Abgabe gehören.