Kommentare zur Lösung der 3. Aufgabe von anonymen Übungsteilnehmern: Die Beurteilung der Lösung lautet: ---------------------------------- +100 Compilation erfolgreich - 3 "zeichne" mehrfach implementiert - 0 Instanzvariablen mit Defaultsichtbarkeit Struktur der Lösung: -------------------- "ARechteck" und "AQuadrat" erben beide direkt von "Form". Der gesamte Code ist sowohl in "ARechteck" als auch "AQuadrat" implementiert. Was an der Lösung positiv auffällt: ----------------------------------- Kommentare sind kurz und klar gehalten. Zusicherungen sagen ganz klar, was passiert, wenn Bedingungen auf den Seitenlängen verletzt sind; daraus folgt, dass diese Bedingungen als Nachbedingungen zu verstehen sind. Es wird sehr ausführlich getestet. Die Aufgabenstellung wird im Wesentlichen sehr direkt gelöst, ohne mit komplexen Programmstrukturen zu experimentieren. Was man anders machen könnte: ----------------------------- Eine abstrakte Klasse zwischen "Form" und "ARechteck" bzw. "AQuadrat" wäre aus zwei Gründen schön: Sie würde eine Ebene einziehen, die in allen Fällen (vor allem als Typ von Parametern) gut zu gebrauchen wäre, wo wir ein Viereck (egal ob Rechteck oder Quadrat) in der vorgegebenen Weise zeichnen möchten und wo das Zeichnen irgendeiner Form nicht klar genug spezifiziert ist. Weiters würde eine solche Ebene eine gute Möglichkeit bieten, die Methode "zeichne" nur einmal zu implementieren. Dabei muss man aber sehr auf die Zusicherungen achten; diese können leicht falsch sein. Für die in diesem Fall nicht angebrachte Verwendung von Instanzvariablen mit Defaultsichtbarkeit gibt es keine Punkteabzüge, da Sichtbarkeit erst in einer späteren Vorlesung behandelt wurde.