<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.freitagsrunde.org/index.php?action=history&amp;feed=atom&amp;title=Javakurs%2F%C3%9Cbungsaufgaben%2FOOPStateCharts%2FMusterloesung</id>
	<title>Javakurs/Übungsaufgaben/OOPStateCharts/Musterloesung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.freitagsrunde.org/index.php?action=history&amp;feed=atom&amp;title=Javakurs%2F%C3%9Cbungsaufgaben%2FOOPStateCharts%2FMusterloesung"/>
	<link rel="alternate" type="text/html" href="https://wiki.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/OOPStateCharts/Musterloesung&amp;action=history"/>
	<updated>2026-05-19T00:53:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in FreitagsrundenWiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/OOPStateCharts/Musterloesung&amp;diff=15752&amp;oldid=prev</id>
		<title>Mario: Die Seite wurde neu angelegt: „Lösung: (kompilierbar in nur einer Datei ...)  &lt;pre&gt; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;  /**  * Base Cl…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/OOPStateCharts/Musterloesung&amp;diff=15752&amp;oldid=prev"/>
		<updated>2011-03-11T00:07:49Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Lösung: (kompilierbar in nur einer Datei ...)  &amp;lt;pre&amp;gt; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;  /**  * Base Cl…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Lösung: (kompilierbar in nur einer Datei ...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Base Class for all states&lt;br /&gt;
 */&lt;br /&gt;
class State {&lt;br /&gt;
	// ! returns a new state, if transition is correct&lt;br /&gt;
	public State transition(String signal) {&lt;br /&gt;
		return this;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * First class to be used in this state chart&lt;br /&gt;
 */&lt;br /&gt;
class InitialState extends State {&lt;br /&gt;
	// ! returns a new state, if transition is correct&lt;br /&gt;
	@Override&lt;br /&gt;
	public State transition(String signal) {&lt;br /&gt;
		if (signal.equals(&amp;quot;start&amp;quot;)) {&lt;br /&gt;
			return new StartedState();&lt;br /&gt;
		} else {&lt;br /&gt;
			System.out.println(&amp;quot;!! signal \&amp;quot;&amp;quot; + signal + &amp;quot;\&amp;quot; not found !!&amp;quot;);&lt;br /&gt;
			return this;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * First class to be used in this state chart&lt;br /&gt;
 */&lt;br /&gt;
class StartedState extends State {&lt;br /&gt;
	// ! returns a new state, if transition is correct&lt;br /&gt;
	@Override&lt;br /&gt;
	public State transition(String signal) {&lt;br /&gt;
		if (signal.equals(&amp;quot;end&amp;quot;)) {&lt;br /&gt;
			return new InitialState();&lt;br /&gt;
		} else if (signal.equals(&amp;quot;exit&amp;quot;)) {&lt;br /&gt;
			return null;&lt;br /&gt;
		} else {&lt;br /&gt;
			System.out.println(&amp;quot;!! signal \&amp;quot;&amp;quot; + signal + &amp;quot;\&amp;quot; not found !!&amp;quot;);&lt;br /&gt;
			return this;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Class file starting main loop&lt;br /&gt;
 */&lt;br /&gt;
public class StateCharts {&lt;br /&gt;
	/**&lt;br /&gt;
	 * Main class, creating the state chart&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param args&lt;br /&gt;
	 * @throws IOException&lt;br /&gt;
	 */&lt;br /&gt;
	public static void main(String[] args) throws IOException {&lt;br /&gt;
		// set the state chart to be initial at state initial&lt;br /&gt;
		State current_state = new InitialState();&lt;br /&gt;
&lt;br /&gt;
		// loop through the state till exit is reached&lt;br /&gt;
		while (current_state != null) {&lt;br /&gt;
			// print information about current class&lt;br /&gt;
			System.out.println(&amp;quot;Current state: &amp;quot;&lt;br /&gt;
					+ current_state.getClass().getName());&lt;br /&gt;
&lt;br /&gt;
			// get signal for next state&lt;br /&gt;
			System.out.print(&amp;quot;signal to be send: &amp;quot;);&lt;br /&gt;
			InputStreamReader input = new InputStreamReader(System.in);&lt;br /&gt;
			BufferedReader reader = new BufferedReader(input);&lt;br /&gt;
			String signal = reader.readLine();&lt;br /&gt;
&lt;br /&gt;
			// get next state if needed&lt;br /&gt;
			current_state = current_state.transition(signal);&lt;br /&gt;
			System.out.println();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// inform user&lt;br /&gt;
		System.out.println(&amp;quot;StateChart is at end state.&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mario</name></author>
		
	</entry>
</feed>