Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2004 W

4. Übungsaufgabe

Themen:

Untertypbeziehungen und Verhalten, Zusicherungen

Termine:

Ausgabe: 04.11.2004
reguläre Abgabe: 11.11.2004, 12:45 Uhr
nachträgliche Abgabe: 18.11.2004, 12:45 Uhr

Abgabeverzeichnis:

Aufgabe04

Programmaufruf:

java Test

Grundlage:

Skriptum bis Seite 70

Aufgabe:

Folgende abstrakte Klasse sei gegeben:
    public abstract class Polygon {
        public abstract void draw();
            // draws a polygon on the screen
    }
Entwickeln Sie konkrete Unterklassen AsciiCircle und AsciiEllipse von Polygon. Die Methode draw soll mit ASCII-Zeichen gefüllte Kreise beziehungsweise Ellipsen in die Standardausgabe schreiben. In einer Instanz von AsciiEllipse soll draw n 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 AsciiCircle gilt 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 draw wirksam) jederzeit von außen zu ändern, ohne dass es dabei zu Fehlermeldungen oder Exceptions kommt. Überlegen Sie, ob AsciiCircle ein Untertyp von AsciiEllipse oder AsciiEllipse ein Untertyp von AsciiCircle ist, oder ob überhaupt keine Untertypbeziehung besteht. Überlegen Sie auch, ob zwischen Polygon und AsciiCircle beziehungsweise AsciiEllipse weitere 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.

Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
            OOP
               Laborübung
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
               9. Aufgabe
               10. Aufgabe
            Typsysteme
            Seminar, WA
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Laborübung
Tutoren
Skriptum
Folien
alle Aufgaben
vorherige Aufgabe
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2004-11-04 (Puntigam)