Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2005 W

8. Übungsaufgabe

Themen:

Gebundene Generizität, Ableitung von generischer Klasse

Termine:

Ausgabe: 01.12.2005
reguläre Abgabe: 15.12.2005, 12:45 Uhr
nachträgliche Abgabe: 12.01.2006, 12:45 Uhr

Abgabeverzeichnis:

Aufgabe8

Programmaufruf:

java Test

Grundlage:

Skriptum bis Seite 113

Aufgabe:

Erweitern Sie Ihre Lösung der 7. Aufgabe folgendermaßen: Benötigt wird eine Datensammlung sortierbaren Inhalts. Der Typ des Inhalts soll durch einen Typparameter festgelegt werden. Neben inSet(x), add(x) und delete(x) soll deleteGreater(x) auch in der generischen Klasse unterstützt werden. Diese Methode entfernt alle Elemente größer x (nach der auf den Elementen definierten Sortierung) aus der Datensammlung. Als sortierbar werden nur Objekte angesehen, die eine Boolesche Methode greater(y) unterstützen. Achten Sie besonders darauf, welchen Typ y hat.

Implementieren Sie auch eine abstrakte Klasse (oder ein Interface) Monitor mit den beiden Unterklassen CRCMonitor und LCDDisplay. Für jede Instanz dieser Klassen soll die Bildgröße in Zoll angegeben sein. Alle Monitore sollen mittels greater nach dieser Größe sortierbar sein. Jeder CRC-Monitor soll zusätzlich Zugriff auf seinen Stromverbrauch und jedes LCD-Display auf seine Auflösung bieten.

Schreiben Sie eine einfache, nicht interaktive Klasse Test zum Testen Ihrer Lösung. Die Testklasse soll

  1. je eine Datensammlung von CRC-Monitoren und LCD-Displays erzeugen,
  2. aus jeder dieser Datensammlungen mittels deleteGreater einige Elemente löschen,
  3. den durchschnittlichen Stromverbrauch der verbleibenden CRC-Monitore und die durchschnittliche Auflösung der verbleibenden LCD-Displays berechnen und
  4. eine neue Datensammlung von Monitoren erzeugen, welche die in den beiden anderen Datensammlungen verbliebenen CRC-Monitore und LCD-Displays enthält.

Lesen Sie das Skriptum bis Seite 113. Verwenden Sie Generizität und Iteratoren überall dort, wo es Ihnen sinnvoll erscheint. Achten Sie darauf, dass Ihre Testklasse alle relevanten Aktionen und Daten am Bildschirm ausgibt. Vergessen Sie nicht auf Zusicherungen als Kommentare.

Schreiben Sie Ihre Lösung in den bereits existierenden Ordner Aufgabe8 in Ihrem Verzeichnis auf dem Übungsrechner b3. Das Programm soll von diesem Ordner aus durch java Test aufrufbar sein; das heißt, die Methode main soll in der Klasse Test in der Datei Test.java (die Sie selbst schreiben) stehen. Schreiben Sie nicht mehr als eine Klasse in jede Datei. Der Ordner soll zum Zeitpunkt der Abgabe (15.12.2005, 12:45 Uhr) und der nachträglichen Abgabe (12.01.2006, 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. Dateien mit anderen Endungen werden bei der Beurteilung nicht berücksichtigt. Verzichten Sie auf die Verwendung von Ordnern innerhalb von Aufgabe8.

Hinweise zur Beurteilung:

Beurteilt wird hauptsächlich die richtige Verwendung gebundener Generizität. Hinweise des Java-Compilers auf unchecked or unsafe operations führen zu starken Punkteabzügen. Generell werden viele Punkte für die Verwendung von raw types (das sind eigentlich generische Typen, bei denen aber nötige Typen in spitzen Klammern fehlen) abgezogen. Vermutlich wird es nötig sein, in der Lösung Wildcards zu verwenden. Daneben werden wie immer Zusicherungen in Form von Kommentaren und die Verwendung geeigneter Testfälle (geringer gewichtete) Schwerpunkte in der Beurteilung bilden.
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
            OOP
               Laborübung
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
               4. Aufgabe
               5. Aufgabe
               6. Aufgabe
               7. Aufgabe
               8. Aufgabe
               9. Aufgabe
            Typsysteme
            Seminar, WA
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
Laborübung
Tutoren
Skriptum
Folien
Aufgaben
vorige Aufgabe
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2005-12-01 (Puntigam)