用java写状态机案例代码
时间: 2024-03-01 20:52:35 浏览: 63
State-machine-design-techniques.zip_状态机
以下是一个简单的 Java 代码示例,实现了一个具有三个状态的状态机,它根据不同的输入条件转换到不同的状态,并执行不同的动作:
```java
public class StateMachineExample {
private enum State {
STATE1,
STATE2,
STATE3
}
private State currentState = State.STATE1;
public void processInput(String input) {
switch (currentState) {
case STATE1:
if (input.equals("A")) {
System.out.println("State 1: Input A received");
currentState = State.STATE2;
} else {
System.out.println("State 1: Invalid input");
}
break;
case STATE2:
if (input.equals("B")) {
System.out.println("State 2: Input B received");
currentState = State.STATE3;
} else {
System.out.println("State 2: Invalid input");
}
break;
case STATE3:
System.out.println("State 3: Input ignored, final state reached");
break;
}
}
public static void main(String[] args) {
StateMachineExample example = new StateMachineExample();
example.processInput("A");
example.processInput("B");
example.processInput("C");
}
}
```
在上面的示例中,我们定义了一个包含三个状态的状态机,并在 `processInput` 方法中实现了状态转换逻辑。在 `main` 方法中,我们创建一个 `StateMachineExample` 对象,并按照一定的顺序输入了三个不同的字符,来触发状态机的状态转换。运行这段代码后,你会看到输出的结果为:
```
State 1: Input A received
State 2: Input B received
State 2: Invalid input
```
这说明我们的状态机成功地从初始状态 `STATE1` 转换到了最终状态 `STATE3`,并在过程中执行了正确的动作。
阅读全文