Klassen und Objekte (1)

Computer verarbeiten Daten. Daten - das sind Zahlen und alles, was sich zu Zahlen machen lässt: Texte lassen sich in Zeichen zerlegen, die man wiederum mit Zahlen kodieren kann. Messwerte, Bilder, Töne und ganze Filme lassen sich digital kodieren und als Zahlenfolgen abspeichern oder weiterverarbeiten.

Der eine Nachteil dieser Betrachtungsweise ist, dass man angesichts der Fülle der Daten schnell die Übersicht verliert. Ein anderes Problem besteht darin, angesichts von vielen Bäumen den Wald zu erkennen. Während ein Mensch beim Anblick eines bestimmten Fotos ohne zu zögern Tante Erna identifiziert, ist ein Computer mit der Aufgabe, den Inhalt eines gespeicherten Fotos zu beschreiben, auch heute noch leicht überfordert.

Einer der Ansätze beim Versuch, die Welt besser zu digitalisieren, besteht nun darin, den engen Blickwinkel auf Zahlen, Zeichen und Pixelfarben aufzugeben und die Gegenstände der Welt als Ganzheiten zu betrachten. Die Welt besteht aus Objekten (Dingen, Gegenständen). Diese Objekte sind nicht alle grundsätzlich verschieden, sondern sie lassen sich unter bestimmten Kategorien betrachten und in Klassen (z.B. Lebewesen, Immobilien, Gebrauchsgegenstände) einteilen, die jeweils eine Reihe gemeinsamer Eigenschaften und Fähigkeiten aufweisen und durch andere Attribute voneinander unterschieden sind.

Betrachten wir einmal die existierenden Objekte vom Typ Zeitanzeiger:

In der realen Welt würde werden Uhren nach eher äußerlichen Kriterien kategorisiert.
Jemand, der den Konstruktionsbefehl "Baue eine Uhr" erhält oder jemand, der die Anweisung zur Beschaffung eines Objekts der Klasse "Uhr" erhält, , würde also Fragen nach ihrem Typ (Armbanduhr, Wecker, Wanduhr), nach ihrer Funktionsweise (mechanisch, batteriebetrieben), nach ihrer Steuerung (autonom oder funkgesteuert) und weiteren Kriterien wie Form, Farbe und Größe stellen.

Man kann die Klasse aller Uhren aber auch anders - und erheblich weiter - fassen:
Die Funktionalität einer Uhr ist heute in unzähligen Artikeln vorhanden, unter anderem natürlich auch in jedem PC. Eine Uhr - das ist abstrakt gesehen einfach irgendeine Vorrichtung, die die momentane Uhrzeit mitführt und Verfahrensweisen zum Ablesen zur Verfügung stellt.

Abstrakt gesprochen: Ein Objekt der Klasse Uhr verfügt über das Attribut Uhrzeit. Die Klasse Uhr stellt Methoden zur Verfügung, wie ich die Uhrzeit ablesen und korrigieren kann.

Aus der Klasse Uhr lassen sich Unterklassen ableiten. Ein Objekt der Klasse Wecker erbt alle Eigenschaften der Klasse Uhr, kann aber darüber hinaus das Attribut Weckzeit speichern und überwachen und ermöglicht es außerdem ihrem Benutzer, den Wecker an- und abzustellen.

Der Java-Editor besitzt einen eingebauten UML-Editor, der Ihnen gestattet, Klassen visuell zu modellieren. UML (Unified Modeling Language) ist eine genormte Sprache zur Modellierung von Strukturen und Abläufen. Ihre Möglichkeiten gehen weit über die visuelle Darstellung von Klassenbeziehungen hinaus. Informieren Sie sich bei Bedarf in der Wikipedia unter dem Stichwort Klassendiagramm.

Aufgaben

  1. Starten Sie den Java-Editor. Rufen Sie den Menübefehl UML - Neue Klasse auf und bauen Sie damit die oben abgebildeten Klassen "Zeitanzeiger", "Uhr" und "Wecker" nach. Leiten Sie aus der Klasse "Uhr" außerdem eine Klasse "Stoppuhr" ab.
  2. Wählen Sie eine weitere Klasse von Objekten aus Ihrer Umgebung und beschreiben Sie mithilfe des UML-Editors ihre Attribute und Methoden.
  3. Untersuchen Sie mithilfe des UML-Editors (UML - Diagramm aus geöffneten Dateien) früher von Ihnen erstellte Klassen.