Objektorientierung und Tabellenkalkulation

Ein entscheidender Vorteil von Objektorientierter Programmierung (OOP) ist es, direkten Zugriff auf Daten unterbinden zu können. Hierdurch kann Code implementiert werden, für den garantiert werden kann, dass er sich - auch unter Verwendung anderer Programmierer - jederzeit in einem konsistenten Zustand befindet. Am Beispiel von Tabellenkalkulationsprogrammen, wie Microsoft Excel oder StarCalc, soll versucht werden, dies zu verdeutlichen.

Eine Tabellenkalkulation besteht aus mehreren Zellen. In jede Zelle kann eine mathematische Rechenvorschrift eingetragen werden, die insbesondere auch Verweise auf andere Zellen enthalten darf. Wenn eine Zelle bearbeitet wird, kommt die vom Benutzer eingetragene Formel zur Anzeige, ansonsten der aktuelle Wert der Formel. Ändert sich nun der Wert in einer Zelle, so soll in allen durch ihre Formeln von dieser Zelle abhängigen Zellen deren jeweils ggf. aktualisierter Wert zur Anzeige kommen: Nach der Änderung des Wertes Formel in einer Zelle, soll in anderen Zellen die Aktion Neuberechnung angestossen werden.

Würde nun die Möglichkeit bestehen, dass dem Programmierer einer Anwendung, die von bereits vorimplementierten Zellen Gebrauch macht, direkter Zugriff auf die Werte einer vorimplementierten Zelle gewährt würde, so könnte er den Wert einer Zelle manipulieren ohne dass sich die von ihr abhängigen Zellen zwingend anpassen. Die abhängigen Zellen blieben also in einem inkonsistenten Zustand, da die erforderliche Aktion nach Datenänderung ausbleibt.

In der Programmiersprache Java besteht zum Schutz von Daten vor Zugriff durch andere Klassen die Möglichkeit, sie als private zu deklarieren. Die Möglichkeit zur Änderung des Wertes einer private Variablen besteht dann von ausserhalb nur über Methoden, bei deren Ausführung dann beliebige andere Aktionen angestossen werden können.

Im folgenden Applet wird eine aus fünf Zellen bestehende Mini-Tabellenkalkulation realisiert. Formeln müssen mit einem Gleichheitszeichen beginnen und dürfen

enthalten. Formeleingaben werden durch ENTER beendet und können später durch F2 editiert werden.

P.S.: Bitte nicht durch häufiges Piepen irritieren lassen...

Dokumentation, Quellcode und Download
Obendrein gibt es eine etwas nettere Version, die von Swing-Komponenten (Java 1.2) Gebrauch macht.
Autor: Christian Liebchen, 30. November 2001