Java基础-高级特性-枚举实现状态机
Java工程师知识树 / Java基础
状态机又称有限状态机,是一个建立在抽象机器上的计算模型,这个状态机在给定的时间内,只能有一个状态,而每一个状态又可以转换为其他状态(其他状态也是我们自己定义的)。
java的枚举是可以包含方法的。在枚举类中写一个抽象方法(abstract),这样枚举类中的每个成员都会继承该方法,这个就是java版实现状态机的核心所在。
实例代码:
public enum PositionState {
LowDevelopment {
@Override
public PositionState nextState() {
return MiddleDevelopment;
}@Override
public String positionDesc() {
return "初级开发攻城狮";
}
},
MiddleDevelopment {
@Override
public PositionState nextState() {
return HighDevelopment;
}@Override
public String positionDesc() {
return "中级开发攻城狮";
}
},
HighDevelopment {
@Override
public PositionState nextState() {
return this;
}@Override
public String positionDesc() {
return "高级开发攻城狮";
}
};
public abstract PositionState nextState();
//抽象方法(abstract)public abstract String positionDesc();
//抽象方法(abstract)public static void main(String[] args) {PositionState development = PositionState.LowDevelopment;
System.out.println("你现在是:" + development.positionDesc());
development = development.nextState();
System.out.println("你现在是:" + development.positionDesc());
development = development.nextState();
System.out.println("你现在是:" + development.positionDesc());
}
}
【Java基础-高级特性-枚举实现状态机】执行结果:
你现在是:初级开发攻城狮
你现在是:中级开发攻城狮
你现在是:高级开发攻城狮
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- Python基础|Python基础 - 练习1
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 唐嫣可真会穿,西装搭牛仔裤都能穿出高级感,一双大长腿太抢镜
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)