Übungen zum objektorientierten Programmieren

Für 15-16 jährige SchülerInnen scheint der objektorientierte Ansatz nicht ganz einfach zu sein. Das wird auch daran liegen, dass in diesem Alter das Abstraktionsvermögen noch nicht selbstverständlicher Teil der zur Verfügung stehenden Denkmuster ist. So banal es klingt, dass jeder Gegenstand, fast alles, was mit einem Hauptwort (Substantiv) bezeichnet wird, ein Objekt ist, es scheint auch schwierig zu sein, geeignete Aufgabensrellungen für die ersten objetorientierten Übungsprogramme zu finden.

Die Aufgabenstellung ist immer wieder:

1) Schreibe eine Klasse für ....

2) Erzeuge ein oder mehrere Objekte davon

3) Schreibe eine Benutzerschnittstelle, um die Eigenschafte des Objektes anzuzeigen, sie zu ändern

4) Erweitere die Benutzerschnittstelle, um Methoden aufzurufen, d.h. auch um diese Methoden zu verwenden, zu testen

5) Erweitere die Benutzerschnittstelle, um das Objekt zu zeichnen

Natürlich eignet sich eine Form in der Regel für eine Benutzerschnittstelle besser als eine Konsolenapplikation.
Für erste Übungen kann man auch eine Konsolenapplikation schreiben.

Beachte auch das Dokument/Daten - Ansicht/Benutzerschnittstelle (Document - View) Konzept.

Es widerspricht zwar einem strengen Dokument / View Konzept, aber zunächst ist es eine gute Lösung, den Code für das Zeichnen eines Objektes auf einer Form oder einem Panel in die Klasse für das Objekt aufzunehmen. Als Argument für die Methode, die man typisch Draw nennt, übergibt man dann das Graphics-Objekt, wie es das Paint-Event als e.Graphics liefert.

Einige Vorschläge für Objekte, für die dann eine Klasse und eine Benutzerschnittstelle zu schreiben ist:

Objekt/Klasse: Person
Daten/Eigenschaften: Name, Adresse, Geb. Datum, Tel. Nummer, Größe, Gewicht ...
Methoden: Größer werden, dicker werden,

 

Objekt/Klasse: Uhr/Wecker
Daten/Eigenschaften: analog / digital, aktuelle Zeit, Zeitzone, Sommer / Winterzeit
Methoden: Auf Sommer / Winterzeit umstellen, Zeit setzen, Wecker stellen, Wecker auslösen, Wecker abschalten

 

Objekt/Klasse: Reale Spannungsquelle
Daten/Eigenschaften: Quellenspannung, Innenwiderstand, maximale Leistung, Kurzschlußstrom, angehängte Last
Methoden: Strom für bestimmt Last berechnen, Klemmenspannung für bestimmte Last berechnen, abgegebene Leistung für bestimmte Last berechnen, Leistung an den Klemmen berechnen

 

Objekt/Klasse: Reale Spannungsquelle
Daten/Eigenschaften: Quellenspannung, Innenwiderstand, maximale Leistung, Kurzschlußstrom, angehängte Last
Methoden: Strom für bestimmt Last berechnen, Klemmenspannung für bestimmte Last berechnen, abgegebene Leistung für bestimmte Last berechnen, Leistung an den Klemmen berechnen, äquivalente Stromquelle berechnen

 

Objekt/Klasse: Reale Stromquelle
Daten/Eigenschaften: Quellenstrom, Innenwiderstand, maximale Leistung, Leerlaufspannung, angehängte Last
Methoden: Strom für bestimmt Last berechnen, Klemmenspannung für bestimmte Last berechnen, abgegebene Leistung für bestimmte Last berechnen, Leistung an den Klemmen berechnen, äquivalente Spannungsquelle berechnen

 

Objekt/Klasse: Diverse geometrische Figuren oder Gegenstände: Kreis, Dreick, Quadrat, Rechteck
Daten/Eigenschaften: Größe, Position, Fläche, Umfang, Farbe, Material, Lage (z.B. Winkel der Grundkante gegen die x-Achse)
Methoden: bewegen, vergrößern, verkleinern, drehen

 

Objekt/Klasse: Masse-Feder-System
Daten/Eigenschaften: Masse, Federkonstante, Eigenfrequenz, Periodendauer, Anfangsauslenkung
Methoden: Position x (t) berechnen, v(t), a(t), E(t) berechnen, Anfangsenergie zuführen

 

Objekt/Klasse: Vektor
Daten/Eigenschaften: x, y, (z), Betrag
Methoden: zugehöriger Einheitsvektor, Normalvektor, Vektor drehen

 

Objekt/Klasse: Elektrische Ladung
Daten/Eigenschaften: Ladung, Position
Methoden: Feldstärke im Punkt (x,y), Kraft auf eine weitere Ladung, Verschieben

 

Objekt/Klasse: Spiel-Würfel
Daten/Eigenschaften: Seitenlänge, Anzahl der Flächen
Methoden: Würfeln