JAVA enum实现简单状态机功能

(转载请注明出处:http://blog.csdn.net/buptgshengod

1.背景

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

2.代码

简单的三种状态切换

public class Main {
    public enum Test{
        ONE,TWO,THREE;
    }

    public static void main(String args[]){
        CHANGE ob=new CHANGE();
        for(int i=0;i<3;i++){
            ob.change();
        }

   }
    public static class CHANGE{
        Test ts=Test.ONE;
        public void change(){

        switch(ts){
            case ONE: ts=Test.TWO;
                     System.out.println("this is test one");
                     break;
            case TWO: ts=Test.THREE;
                      System.out.println("this is test two");
                     break;
            case THREE: ts=Test.ONE;
                      System.out.println("this is test three");
                     break;
        }
    }
    }
}

效果图

时间: 2025-01-24 20:22:43

JAVA enum实现简单状态机功能的相关文章

java web中图片验证码功能的简单实现方法_java

用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

java enum的使用以及字符串其字符串之间的转换

文章简单,相信在很多网站都能搜索到java enum枚举的使用方式:可能有些东西我当时在刚开始用的时候没找到,所以我写了这篇文章,例如: 大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎么转呢,类似

java Socket实现简单在线聊天(二)

接<java Socket实现简单在线聊天(一)>,在单客户端连接的基础上,这里第二步需要实现多客户端的连接,也就需要使用到线程.每当有一个新的客户端连接上来,服务端便需要新启动一个线程进行处理,从而解决之前的循环读取中造成阻塞的问题. 写线程通常有两种方法,集成Thread或者实现runnable接口,原则上是能实现runnable的情况下就不继承,因为实现接口的方式更加灵活. 客户端代码相较之前没有变化,变得是服务端,因此这里便只贴出服务端代码: package chat.chat; im

Java案例之随机验证码功能实现

实现的功能比较简单,就是随机产生了四个字符然后输出.效果图如下,下面我会详细说一下实现这个功能用到了那些知识点,并且会把 这些知识点详细的介绍出来.哈哈 ,大神勿喷,对于初学Java的人帮助应该蛮大的.嘿嘿. 案例下载地址:http://download.csdn.net/detail/qq_34337272/9862639(免费,里面还有几个其他小程序) 先上效果图: 源代码: RandomGen.java(实现产生验证码功能的类) package verificationcode; impo

Java语言实现简单FTP软件------&amp;gt;源码放送(十三)

Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三) Java语言实现简单FTP软件------>FTP软件主界面的实现(四) Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五) Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六) Java语言实现简

巧用Java 实现个性MSN聊天功能

MSN Messenger这一由世界头号软件商-微软公司开发的即时通讯软件,凭借其与windows操作系统和整个微软产品家族的紧密结合,简单实用.性能稳定.世界通用等特点,很快被中国用户接受,目前其用户正在以几何数字增长.但是让开发者雀跃的是该软件同时也提供了开放的API以及开放的通讯协议. 著名的MSN Plus就是一款利用其API开发的用于扩展MSN Messenger功能的插件.而我们今天要介绍的jMSN则是封装了MSN Messenger开放的通讯协议的JAVA API,通过这个API开

Android编程实现简单流量管理功能实例_Android

本文实例讲述了Android编程实现简单流量管理功能的方法.分享给大家供大家参考,具体如下: package cn.itcast.mobilesafe.ui; import java.util.List; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import

html5+-求计算器简单加减乘除功能代码

问题描述 求计算器简单加减乘除功能代码 计算器 <!-- 外部css --> <!-- 外部移动层JS --> <!-- 外部计算功能JS --> <br> div{width:100%;height:800px;background:gray;}<br> 简单的计算器 <!-- 表单 --> <!-- 层的边框大小样式颜色 --> </tr> </table> </form> <

分享一款数据库代码生成的工具,非常简单,功能强大,速度快,非常适合中小网站开发

问题描述 分享一款数据库代码生成的工具,非常简单,功能强大,速度快,非常适合中小网站开发,适合Sqlite,Access,MsSql,MySql(Beta)等数据库这是我多年实战开发的一款数据库代码生成工具原文地址新建ASP.Net空网站TestWebSite修改Web.config添加以下内容添加引用,引用MaoCaiJun.DataBase.dll,MaoCaiJun.DataBase.Sys.dll,MySql.Data.dll,System.Data.SQLite.dll添加目录App_