====== Implementierung deterministischer endlicher Automaten in Java ====== {{ ..:pasted:20250926-081752.png?300}} ===== 1. 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.
===== 2. 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: ====
===== 3. 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:
{{ ..:pasted:20250926-081752.png?300}} ===== 4. Implementierung eines DEA mit dem State-Pattern ===== Wir implementieren jeden Zustand als Singleton mit einer Methode ''getNextZustand(char c)'', die abhängig von ''c'' das Folgezustand-Objekt zurückgibt. Zudem gibt jeder Zustand mittels der Methode ''isEndZustand()'' Auskunft darüber, ob er ein Endzustand ist.
===== Aufgabe 1 ===== Bearbeiten Sie im Buch "Informatik 7, gA" Aufgabe 6 auf Seite 37.