kopf
brlogo
fensterobenrechts
   
   
fensteruntenblau
   
 

Vom Objekt zur Polymorphie

3. Erzeugen von Klassen

 

4. Projekt Haus

 

Im letzten Projekt Baukasten haben wir mithilfe der verfügbaren Bausteine die folgende Modellwelt gestaltet. Aber sehen Sie die einzelnen Bausteine? Nein. Man sieht vielmehr Häuser und eine Sonne.

 

haus_40

     (Abb. Zeichenfenster mit Häusern und Sonne)

 

Projekt Haus

Es stellt sich daher die Frage, ob die im letzten Projekt gewählte Modellbildung (Das Hauptformular hat 19 Bausteine aus dem Baukasten) nicht durch eine problemangemessenere Betrachtung der Aufgabe (Das Hauptformular hat 3 Häuser und eine Sonne) verbessert werden kann.

 

Einige Aspekte, die für die Beantwortung dieser Frage hilfreich sind:

 

  • Objekte sind autonom agierende Bestandteile im Modell. Ob also Haus und Sonne als Objekte neu zu entwerfender Klassen zu verstehen sind, hängt im wesentlichen davon ab, ob sie in der Modellwelt tätig werden, indem sie entweder Nachrichten senden oder Nachrichten empfangen.
     
  • Objekte reagieren auf Nachrichten und enthalten alle Daten, die zur Reaktion auf Nachrichten notwendig sind. Das Objekt „Haus“ muss also etwas anderes „können“ als die Ansammlung seiner Bausteine.
     
  • Klassen sind Bauvorschriften für Objekte. Immer dann, wenn mehrere gleichartige Objekte in der Modellwelt benötigt werden, ist die Definition einer eigenständigen Klasse notwendig und sinnvoll.

 

 

   
     Ziele
   
  • Planen einer Klase auf der Basis einer vorgegebenen Funktionalität
  • Erstellen einer Klasse in einer Datei (Unit)
  • Bestandteile eines Klassendiagramms: Attribute und Methoden
  • Attribute: Unterscheidung zwischen Objekt- und Zustandsvariablen
  • Objektvariable in UML: Assoziation oder Aggregation (Benutzt- bzw. Verwaltungs-Beziehung)
  • Zustandsvariabe: Datentypen Integer, Boolean
  • Definieren von Methoden: Strategie und Syntax
  • Unterscheidung zwischen Prozedur- und Funktions-Methode (Aufrag bzw. Anfrage)
  • Dokumentation einer Klasse: Grundschema
     

 

 

5. Projekt Ampel

 

In diesem Projekt wollen wir die Funktionalität von Methoden stärker ins Blickfeld rücken. Mithilfe des Baukastens erstellen wir Ampeln und Ampelanlagen, die dann auf eine problemangemessene Ansteuerung reagieren. Analog zum Objekt Haus gehen wir zum Objekt Ampel über.

Diese Ampeln sind „schlau“ in dem Sinne, dass sie ihre Steueranweisungen autonom ausführen. Sie sind jedoch „dumm“ in dem Sinne, dass sie von außen mithilfe einer Ampelsteuerung angesteuert werden. Sind z. B. 4 Ampeln an einer Ampelkreuzung installiert (nur Straßenampel, keine Fußgängerampel), befindet sich die Steuerung der Kreuzung nicht in den vier Ampeln, sondern in einer separaten Steuereinheit (meistens ein Schaltkasten am Straßenrand).  Die Ampelsteuerung übernimmt hier das Hauptformular als Steuerprogramm. Sollte hierüber hinaus eine eigenständige Steuerung benötigt werden, so wird eine geeignete Steuerklasse erstellt. 

 

         ampel_30

           (Abb. Ampelkreuzung mit 4 Ampeln)

 

 

   
     Ziele
   
  • Entwickeln einer weiteren Klasse TAmpel, dabei
  • Methoden: Schutzklasse private und public
  • Methoden: Unterscheidung zwischen Nachricht und Hilfmethode
  • Kontrollstruktur Entscheidung: einfach, zweifach, mehrfach
  • Sequenz von Anweisungen: Verbundanweisung
  • Exkurs: Animationen mithilfe des Timer-Steuerelementes (Klasse TTimer)
     

 

 

Entwicklungsschritte des Projekts

 

1. Programm Ampel1 Modellieren der Klasse TAmpel
2. Programm Ampel2 Blinkmodus der Ampel
3. Programm Ampel3 Umschalten des Ampelzustandes
4. Programm Ampel4 Autonome (animierte) Ampelsteuerung

 

 

Unterrichtsmaterial

 

Skript:  Haus.pdf, Ampel.pdf

Infos und Hilfen: Anweisungen.pdf, Datentyp_Boolean.pdf, Datentypen_für_Zahlen.pdf, Datentypen_für_Zeichen.pdf, Klasse_THaus.pdf

Download: (Delphi 7)  Klassen.zip 

 

 

Hinweise zum Unterricht

 

Durch Definieren ähnlicher Klasse, z. B.  TTurm, TKirche, TLkw, TStrasse, entsteht zugleich auch wichtiges Basismaterial für die weiteren Kapitel.

 

weiter:  Grafik-Konzept

 

 
 
Wednesday, 22. November 2017 / 08:11:05