Statische Variablen und Methoden
- In der Sache begründet, dass bestimmte Peripherie nur einmal existiert, liegt, dass häufig es nicht sinnvoll ist mehrere Objekte einer Klasse zu haben.
- Hier bietet es sich an erst gar keine Objekte zu erzeugen, sondern mit statischen Methoden und Attributen zu arbeiten.
- Zur Erinnerung: Statische Objekte und Attribute existieren, auch ohne das vorherige Erzeugen eines Objektes der Klasse, in der sie definiert sind.
- Ein Beispiel ist eine Variable, die dazu benutzt werden soll, wieviele Objekte einer Klasse bereits erzeugt worden sind (s. Informatik3, Kapitel 3.6).
- In unserem Fall existiert besispielsweise nur eine UART-Schnittstelle.
- Somit leuchtet es nicht ein, warum z.B. die Möglichkeit bestehen soll mehr als ein Objekt von einer Klasse RS232 bilden zu können.
- Hinweis: Wenn durch entsprechende Mechanismen dafür gesorgt wird, dass von einer Klasse nur ein Objekt erzeugt werden kann, spricht man auch von einem "Singleton".
- Für eine Klasse RS232, die die RS232-Schnittstelle benutzbar macht und nur statische Methoden besitzt,
würden Methoden und Attribute bespielsweise in folgender Weise angesprochen werden können:
- RS232::start(baudrate,stopbits);RS232::sendeText(meintext);akku = RS232::holoZeichen();bereit = RS232::bereitschaftsflag; etc.
- Die Verwendung statischer Methoden und Attribute erlaubt es ferner auf Methoden an jeder Stelle im Programm zuzugreifen, ohne beispielsweise Zeiger auf ein Objekt übergeben zu müssen.
- Der doppelte Doppelpunkt mit dem vrangehenden Klassennamen definiert also eindeutig die Zugehörigkeit einer Methode oder eines Attributs.
- Hier nun ein UML-Entwurf für eine allgemeine Klasse zur Verwendung in C++-Programmen für den ATmega32, in dem alle Methoden und Attribute statisch sind (statische Methoden und Attribute werden im UML-Klassendiagramm unterstrichen dargestellt):
|
Bild 0-3: UML-Klassendiagramm für den Entwurf einer geeigneten Klassenstruktur mit rein statischen Elementen.