kramann.info
© Guido Kramann

Login: Passwort:










5.2.3 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):
UML-Klassendiagramm

Bild 5.2.3-3: UML-Klassendiagramm für den Entwurf einer geeigneten Klassenstruktur mit rein statischen Elementen.