Fachkonzepte - Vom Algorithmus zum Objekt
Grundsätzlich lassen sich Programmsysteme auf zweierlei Weise strukturieren.
Funktionale Abstraktion
Dies ist die bisher von uns verwendete Art zu programmieren. Das gesamte Programm wird als ein großer Algorithmus aufgefasst, der mithilfe von schrittweiser Verfeinerung bis auf elementare Anweisungen zerlegt wird. Prozeduren werden in Unterprozeduren zerlegt.

Dabei müssen die Daten immer wieder durchgereicht werden. Daten und Algorithmen werden bei der strukturierten Programmierung getrennt behandelt.
Aufgabe 1 – Rückblick
Erinnern Sie sich an den Einstieg (Heft 0): Dort ist eine Figur einen Random Walk gelaufen, und im Duell sollten zwei Figuren gleichzeitig laufen. Das war grundsätzlich machbar, führte jedoch zu einem Problem, sobald mehrere Figuren diesen Algorithmus durchführen sollten.
Beschreiben Sie diese Problematik kurz.
(noch nicht bearbeitet)
Prinzip der Datenabstraktion
Bei diesem Programmierstil stehen die Datenstrukturen im Mittelpunkt der Betrachtung. Sie haben eigene Algorithmen zur Verfügung, die sie zur Erledigung ihrer Aufgaben und zur Änderung ihres Zustands brauchen. Diese Sichtweise ist die Grundlage der objektorientierten Programmierung (kurz OOP).

Der entscheidende Unterschied liegt darin, dass bei OOP die Objekte „ein Gedächtnis“ haben, also immer den Zustand ihrer Daten kennen.
Objekte können mit dem Programm und untereinander kommunizieren und sich „Nachrichten“ schicken (Message-Passing-Prinzip). Diese können dann Einfluss auf Eigenschaften und Methoden haben:

Im Framework haben Sie dieses Prinzip bereits in Aktion erlebt. So kann beispielsweise der Held oder der Knappe Tore öffnen und schließen – allerdings nur dann, wenn er direkt vor dem Tor steht. Die beiden Objekte tauschen also ihre Koordinaten aus und können dann Änderungen durchführen, in diesem Fall am Zustand des Tores.
Aufgabe 2
Nennen Sie weitere Beispiele im Framework, bei denen Objekte miteinander kommunizieren müssen. Welche Informationen müssen hierbei ausgetauscht werden?
(noch nicht bearbeitet)
Über welches „Bindeglied“ erfolgt die Kommunikation?
(noch nicht bearbeitet)
Bei der funktionalen Abstraktion werden Daten und getrennt behandelt. Die Daten müssen immer wieder werden.
Bei der objektorientierten Programmierung haben Objekte ein : Sie kennen immer den ihrer Daten. Untereinander schicken sie sich .