formalesprachen:endlicheautomaten:implementierung
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Implementierung deterministischer endlicher Automaten in Java
1. Statische Methoden und statische Attribute
- Hat eine Klasse ein (normales) Attribut, so kann dies für jedes Objekt dieser Klasse einen unterschiedlichen Wert haben. In technischer Hinsicht wird je Objekt der Klasse ein eigener Speicherplatz für dieses Attribut reserviert.
- Hat eine Klasse eine (normale) Methode, so kann diese Methode nur mit Bezug zu einem Objekt aufgerufen werden (Punktschreibweise
objekt.methode()). Innerhalb der Methode kann man auf die Attribute dieses Objekts zugreifen. - Hat eine Klasse ein statisches Attribut, so ist dies unabhängig von den Objekten der Klasse und besitzt genau einen Wert. In technischer Hinsicht wird nur ein einziger Speicherplatz dafür reserviert.
- Eine statische Methode einer Klasse wird ohne Bezug zu einem Objekt der Klasse aufgerufen. Innerhalb der Methode kann man daher logischerweise nicht auf (normale) Attribute der Klasse zugreifen, wohl aber auf statische Attribute.
Beispiel:
2. Das Singleton-Pattern
Oft möchte man erzwingen, dass es von einer Klasse genau ein Objekt gibt. Dazu gibt es das Singleton-Pattern, das oft wie folgt implementiert wird:
3. Implementierung eines DEA in Java - einfache Variante
Der rechts gezeichnete Automat unten mit dem Eingabealphabet A = { "a", "b" } erkennt alle Wörter über A, die nichtleer sind und eine gerade Anzahl von a's haben.
Im Folgenden erstellen wir einen Algorithmus, der ermitteln kann, ob der Automat ein Wort akzeptiert oder nicht.
4. Implementierung eines DEA mit dem State-Pattern
formalesprachen/endlicheautomaten/implementierung.1759243074.txt.gz · Zuletzt geändert: von Martin Pabst

