HS: Fachdidaktik Informatik Sommersemester 2002

Dozent: S. Spolwig    

Referent: G. König

21.05.2002

 

 

Objektorientierte Programmierung (OOP)

 

Einführung

Funktionsweise

    Komponenten

    Verfahren

    Programmstruktur

OOP und Schule

Quellen

 

Einführung

 

Bei Computerprogrammen im Sinn der bereits vorgestellten Programmierstile handelte es sich um die Vorstellung als Listen von Anweisungen, die dem Computer mitteilen, was er zu tun hat (imperativ-prozedural); oder eine Menge von kleinen Programmen, die auf bestimmte Ereignisse, die der Benutzer auslöst, reagieren (funktional-applikativ); oder um eine isolierte Welt, bestehend aus Fakten und Regeln (prädikativ). Alle Ansätze haben Modellierung gemein. Um ein Problem zu lösen, wird versucht die Realität in fassbare Lösungsschritte, beherrschbare Algorithmen zu zerlegen oder einen Ausschnitt der Welt zu modellieren.

Diesem Grundprinzip, der Abbildung der uns umgebenden Realität, kommt der objektorientierte Programmierstil durch seine Grundidee sehr nah.. 

 

„Organisieren Sie Ihre Programme auf eine Art, die die Art widerspiegelt, mit der Objekte in der realen Welt organisiert sind“

oben

Wie also funktioniert OOP grundsätzlich?

 

Wie Lego oder ein Computer oder ein Betrieb oder...

 

Dahinter steckt die Idee Computerprogramme anders zu strukturieren. Im Mittelpunkt stehen Komponenten mit Datenstrukturen und die zur Lösung Ihrer Aufgaben nötigen Algorithmen und die Interaktionen zwischen diesen Komponenten.

oben

Elemente um objektorientiert zu programmieren:

 

Klassen – Abstraktion

Eine Klasse ist eine Vorlage, die zur Erzeugung vieler Objekte mit gleichen Eigenschaften und Methoden verwendet wird. Diese beinhaltet Variablen zur Beschreibung des Objektes und Methoden um das Verhalten zu steuern.

 

Objekte (Instanzen) – Modularität 

Ein Objekt ist ein abgeschlossenes Element eines Computerprogramms, die Instanz einer Klasse (abgeleitet). Es ist dafür ausgelegt, bestimmte Aufgaben zu erfüllen. Alle Objekte können auf eine definierte Art in einem Programm zusammenarbeiten. Sie haben Zugriff auf die Methoden ihrer Klassen.

 

Methoden – Kapselung 

Erzeugen, Entfernen eines Objektes durch Konstruktoren und Zugriff auf die Attribute eines Objektes

            Statische Methoden – immer denselben Code und dieselben Methoden

            Virtuelle Methoden – können in abgeleiteten Klassen überschrieben werden

oben

Verfahren um objektorientiert zu programmieren:

 

Vererbung – Hierarchie

Vererbung ist ein Mechanismus, der es einer Klasse (Subklasse) ermöglicht, all ihre Verhaltensweisen und Attribute von einer anderen Klasse (Superklasse) zu erben.

 

Überschreiben

Überschreiben von Methoden einer Superklasse durch verwenden der gleichen Parameter in einer Subklasse.  Überladen,

 

Botschaften

Eine Message ist ein Auftrag oder eine Anfrage von einem Objekt an ein anderes Objekt, um eine Dienstleistung zu erbringen.

 

Polymorphie

Dieselbe Botschaft kann an unterschiedliche Objekte verschiedener Klassen gesendet werden, wobei die Objekte selbst wissen, wie sie sie auszuführen haben.

 

Schnittstellen

Ist eine Sammlung von Methoden, die gemeinsam genutzte Verhaltensweisen beinhalten, die benannt aber nicht implementiert sind. So können Klassen neben ihrem geerbten noch zusätzliches Verhalten aufzeigen..

oben 

Struktur der Programme

 

Aufgabe des Programmierers ist es also eine Klasse zu erstellen, die die Objekte der Standardklassen oder neuer Klassen erzeugt und deren Interaktionen koordiniert. Dafür sind Klassenbibliotheken vorhanden und können neu erstellt werden. So ist die Wiederverwendbarkeit garantiert.

 

Das Gerüst des Systems bilden Objekte und Objekttypen, die Eigenschaften und eigene Operationen besitzen. Diese stehen miteinander in Verbindung und können sich gegenseitig Aufträge zusenden. Jedes Objekt erledigt damit einen Teil der Aufgaben für den es verantwortlich ist. Das Zusammenwirken aller beteiligten Objekte löst die Gesamtaufgabe.

oben 

Schule und OOP

 

Bei OOP handelt es sich um eine sehr komplexe Abbildung der Realität, wie man sie als Einzelperson sicherlich nie wahrnehmen würde. Insofern kann ich mir die Überforderung von Schülern gut vorstellen. Andererseits besteht die Möglichkeit zu erörtern wie Prozesse um einen herum auch Außerhalb unserer subjektiven Wahrnehmung ablaufen und Problemlösungsstrategien funktionieren.

Die Benutzung von Klassenbibliotheken ist eine große Errungenschaft der objektorientierten Programmierung. Der Wiederverwendbarkeit von eigenen und vorgegebenen Klassen steht so nichts im Wege. Das ist eine hervorragende Sache für die Motivation der Schüler, wenn sie nicht mehr endlose bekannte Quelltexte für den Mülleimer produzieren müssen. Es bedarf aber einer aufmerksamen Archivierung und einer eindeutigen Dokumentation, um in der Breite, wie auch der Tiefe der Bibliotheken, die Übersicht nicht zu verlieren.

Dies sind nur zwei Aspekte.

Ich glaube um OOP befriedigend vermitteln zu können braucht man weit mehr Zeit als der Rahmenplan zur Verfügung stellt. Zusätzlich gibt es die anderen natürlichen Barrieren im Schulbetrieb, über die wir aber schon zum Ende fast jeden Seminars diskutierten.

Das ist aber der ganz normale Kampf gegen die Widrigkeiten im Schulalltag. Und so sollten wir schon versuchen dieses Konzept zu vermitteln, steckt doch so viel Lebensweisheit drin.

oben 

Quellen:

In sehr enger Anlehnung an

Laura Lemay, Rogers Cadenhead; Java2, Markt und Technik Verlag, 1999

und der Internetseite des OSZHandel; OOP Autor S. Spolwig

http://oszhandel.de/gymnasium/faecher/informatik/oop

oben