`
liujiekasini0312
  • 浏览: 147134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA enum实现简单状态机功能

 
阅读更多

1.背景

我们做Android应用,往往要进行多个状态的切换,就像是照相机功能的侦测,预置,拍照等状态。有的时候通过if else也能完成功能,但是却显得代码很乱,这时候用enum枚举方法产生状态机机制,就很清晰的实现功能。

2.代码

简单的三种状态切换

  1. publicclassMain{
  2. publicenumTest{
  3. ONE,TWO,THREE;
  4. }
  5. publicstaticvoidmain(Stringargs[]){
  6. CHANGEob=newCHANGE();
  7. for(inti=0;i<3;i++){
  8. ob.change();
  9. }
  10. }
  11. publicstaticclassCHANGE{
  12. Testts=Test.ONE;
  13. publicvoidchange(){
  14. switch(ts){
  15. caseONE:ts=Test.TWO;
  16. System.out.println("thisistestone");
  17. break;
  18. caseTWO:ts=Test.THREE;
  19. System.out.println("thisistesttwo");
  20. break;
  21. caseTHREE:ts=Test.ONE;
  22. System.out.println("thisistestthree");
  23. break;
  24. }
  25. }
  26. }
  27. }

效果图


1.背景

我们做Android应用,往往要进行多个状态的切换,就像是照相机功能的侦测,预置,拍照等状态。有的时候通过if else也能完成功能,但是却显得代码很乱,这时候用enum枚举方法产生状态机机制,就很清晰的实现功能。

2.代码

简单的三种状态切换

  1. publicclassMain{
  2. publicenumTest{
  3. ONE,TWO,THREE;
  4. }
  5. publicstaticvoidmain(Stringargs[]){
  6. CHANGEob=newCHANGE();
  7. for(inti=0;i<3;i++){
  8. ob.change();
  9. }
  10. }
  11. publicstaticclassCHANGE{
  12. Testts=Test.ONE;
  13. publicvoidchange(){
  14. switch(ts){
  15. caseONE:ts=Test.TWO;
  16. System.out.println("thisistestone");
  17. break;
  18. caseTWO:ts=Test.THREE;
  19. System.out.println("thisistesttwo");
  20. break;
  21. caseTHREE:ts=Test.ONE;
  22. System.out.println("thisistestthree");
  23. break;
  24. }
  25. }
  26. }
  27. }

效果图


分享到:
评论

相关推荐

    一个有趣的有限状态机的JAVA实现

    本主题“一个有趣的有限状态机的JAVA实现”将带你探索如何利用Java语言构建一个能解决有趣问题的状态机,比如“如何把大象塞进冰箱”。 首先,让我们理解有限状态机的基本概念。有限状态机是一种数学模型,它由一组...

    java枚举状态机

    Java枚举(Enum)状态机是一种使用枚举类型来实现状态转换逻辑的编程技术,它在Java编程中被广泛应用于管理对象的状态变化。状态机是一种模型,用于描述一个系统或对象在不同时间点可能存在的状态以及如何从一个状态...

    Java Enum使用Demo源码

    在Java编程语言中,枚举(Enum)是一种特殊的类,用于定义固定的常量集合。它在许多场景下比常量接口或静态final变量更安全、更方便。...在实际开发中,枚举在表示固定选项、状态机、协议常量等方面都有广泛应用。

    Java枚举类型Enum的用法

    Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。...在实际开发中,尤其是在设计模式、状态机或者表示固定集合的场景下,枚举类型是非常有用的工具。

    Java如何通过枚举实现有限状态机

    Java如何通过枚举实现有限状态机 Java中的枚举类型是一种特殊的类类型,它可以实现有限状态机。有限状态机是一种数学模型,用于描述一个系统在不同的状态下可以执行的动作和切换规则。 Java中的枚举类型可以很好地...

    高阶Java-Java枚举类型 enum 应用详解

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组固定的常量。...枚举的这些特性使其在设计模式、数据模型、状态机等多种场景中都有广泛应用。理解并熟练运用Java枚举,能显著提高代码质量和可维护性。

    基于java实现的有限状态自动机,轻松,快捷,高效的关联状态的扭转.zip

    在Java编程语言中,我们可以利用面向对象特性来实现有限状态机,使得状态的转变变得轻松、快捷且高效。本压缩包文件“基于java实现的有限状态自动机,轻松,快捷,高效的关联状态的扭转.zip”很可能是包含了一个或多...

    javaenum(枚举)使用详解+总结.pdf

    Java中的枚举(enum)是自JDK 1.5版本引入的一种强大的类型,它用于...枚举在处理固定选项、状态机、权限控制等场景中非常有用,是Java编程中不可或缺的一部分。理解并熟练运用枚举,能显著提高代码的质量和可读性。

    状态机判断实数(Java标准)

    以下是状态机判断字符串是否表示Java实数的一种可能实现步骤: 1. **初始状态**:检查字符串的开头,可能遇到正负号或者数字。 2. **整数部分**:如果遇到数字,进入整数部分状态,收集数字直到遇到小数点或非数字...

    Java中的枚举类型Enum示例源代码

    枚举类型还可以用于实现策略模式、状态机等设计模式,提供了比常量类更安全、更灵活的解决方案。 总之,Java的枚举类型`Enum`不仅提供了对常量集的封装,还具备了类的所有功能,包括方法、构造函数和继承。它极大地...

    Java中的Enum枚举用法.doc

    1. **状态机:** - 枚举非常适合用来表示有限的状态集合,比如订单状态、用户状态等。 2. **选项菜单:** - 在图形用户界面中,枚举可以用来表示下拉列表或选项卡中的选项。 3. **配置项:** - 枚举可以用于定义...

    java图灵机实现

    Java实现图灵机是一种将抽象计算理论与编程实践相结合的方式。图灵机是计算机科学的基础概念,由英国数学家阿兰·图灵提出,用于描述一种理论上可执行任何计算的机器模型。它由一个无限长的纸带、一个读写头和一组...

    Java(enum)枚举用法详解

    枚举类型使得代码更加清晰,易于理解和维护,尤其在处理固定集合的常量时,如错误码、状态机等场景。 首先,我们来看一下如何定义枚举。在Java中,定义枚举的语法如下: ```java enum Color { RED, GREEN, BLUE } ...

    java中的枚举类型

    1. 状态机:枚举类型可以用来定义状态机的状态。 2. 命令模式:枚举类型可以用来定义命令模式的命令类型。 3. 配置文件:枚举类型可以用来定义配置文件的配置项。 枚举类型与常数的区别 枚举类型和常数之间有一些...

    enum 结构分析源码

    枚举在程序设计中有很多用途,如表示状态机的不同状态、定义标志位集等。枚举常量可以用于变量声明,这样可以提高代码的可读性和可维护性: ```c enum Colors color; color = Red; ``` 枚举还可以与其他类型进行...

    Java枚举类enum介绍

    枚举类在实际开发中非常有用,例如在定义状态机、角色、权限、日志级别等固定集合的常量时,枚举提供了一种清晰、安全的编程模式,避免了传统常量定义可能带来的错误和不一致性。使用枚举还可以方便地进行类型安全的...

    java飞机大战游戏

    开发者可以使用枚举类型(enum)来表示不同的游戏状态,并通过状态机模式来管理这些状态。 8. **资源管理**:游戏中的图片、音频等资源需要被正确加载和释放,避免内存泄漏。Java提供了多种I/O流类来读取文件,同时...

    java实现俄罗斯方块

    - 游戏状态:包括游戏开始、暂停、结束等状态,用枚举类型(enum)来定义这些状态,通过状态机来管理游戏流程。 8. **调试与测试**: - 使用Junit或其他单元测试框架对游戏逻辑进行测试,确保每个部分功能正常。 ...

    Desafio1_1503:用Java进行小状态机测试

    "Desafio1_1503:用Java进行小状态机测试"这个项目显然聚焦于使用Java语言来实现对小型状态机的测试。让我们深入探讨一下状态机的概念、Java在状态机中的应用以及如何进行有效的测试。 状态机,也称为有限状态自动机...

    基于Java Swing的简单排块游戏设计与实现.zip

    使用枚举类型(enum)可以清晰地定义和管理这些状态,同时通过状态机模式来切换游戏状态。 总结来说,基于Java Swing的简单排块游戏设计与实现涉及到许多核心的Java和Swing概念,包括组件使用、事件处理、图形绘制...

Global site tag (gtag.js) - Google Analytics