免费刷金币,请点击这里
TE社区 > 后端开发
客服QQ:1206116161

Java5 枚举类型使用总结

°Worldwea 于 2016-04-23 19:44:38 创建话题
(4001)
(1)
举报

一、概述

当使用enum定义一个枚举类型时,实际上所定义的类型自动继承了java.lang.Enum类。而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。

枚举在什么地方适用呢?一条普遍规则是,任何使用常量的地方,例如目前用 switch 代码切换常量的地方。如果只有单独一个值(例如,鞋的最大尺寸,或者笼子中能装猴子的最大数目),则还是把这个任务留给常量吧。但是,如果定义了一组值,而这些值中的任何一个都可以用于特定的数据类型,那么将枚举用在这个地方最适合不过。

所有枚举类都继承了Enum的方法,下面我们详细介绍这些方法。       

(1)  ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。       

(2)  compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。(具体可见源代码)  Color.RED.compareTo(Color.BLUE);  //返回结果 -1      

 (3)  values()方法: 静态方法,返回一个包含全部枚举值的数组。 Color[] colors=Color.values();        for(Color c:colors){ System.out.print(c+","); }//返回结果:RED,BLUE,BLACK YELLOW,GREEN,      

 (4)  toString()方法: 返回枚举常量的名称。Color c=Color.RED;   System.out.println(c);//返回结果: RED      

 (5)  valueOf()方法: 这个方法和toString方法是相对应的,返回带指定名称的指定枚举类型的枚举常量。                 Color.valueOf("BLUE");   //返回结果: Color.BLUE      

 (6)  equals()方法: 比较两个枚举类对象的引用。

public class EnumStudy {
    public static void main(String [] args){
        WeekDay weekDay=WeekDay.SUN;
        System.out.println("对象本身:"+weekDay);//对象本身:SUN
        System.out.println("枚举name方法"+weekDay.name());//枚举name方法SUN
        System.out.println("枚举ordinal方法:序号"+weekDay.ordinal());//枚举ordinal方法:序号0
        System.out.println("枚举toString方法"+weekDay.toString());//枚举toString方法SUN
        //valuesOf()方法:将String转化成枚举对象
        System.out.println(WeekDay.valueOf("FRI"));
        //values()方法:返回所有的枚举值
        System.out.println(WeekDay.values().length);
        for(WeekDay wd:WeekDay.values()){
            System.out.println(wd);
        }
        //*************枚举高级应用***************\\
        System.out.println("-------------------------");
        //枚举的每个值都是一个对象,他们都有构造方法,我们可给它重构一些构造方法
        //每次第一个使用枚举值时,它会为所有枚举值都实例化一次
        System.out.println(WeekDay2.SUN);
        System.out.println(WeekDay2.TUE);
        System.out.println("-------------------------");
        //枚举的每个值都是一个对象,我我们也可以为它们添加一些属性和方法
        TranfficLamp lamp = TranfficLamp.GREEN;   
        // TranfficLamp枚举添加的特有的属性   
        System.out.println(lamp.time);   
        // TranfficLamp枚举添加的特有的方法   
        System.out.println(lamp.nextLamp());       
    }
    //普通枚举类
    public enum WeekDay{
        SUN,MON,TUE,WED,THI,FRI,SAT;
    }
    //有多个构造方法的枚举
    public enum WeekDay2{
        SUN(0),MON(1),TUE(),WED,THI,FRI,SAT;
        //所有的方法或其它必须放在枚举值的下面
        //构造器只能私有private,绝对不允许有public构造器。
        //这样可以保证外部代码无法新构造枚举类的实例。
        //这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 
        //但枚举类的方法和数据域可以允许外部访问。
        private WeekDay2(){
            System.out.println("调用第一个构造方法");
        }
        private WeekDay2(int day){
            System.out.println("调用第二个构造方法");
        }
    }
    //有抽象方法和属性的枚举
    public enum TranfficLamp{
        RED(30){
            public TranfficLamp nextLamp(){
                return GREEN;
            }
        },
        GREEN(45) {   
            public TranfficLamp nextLamp() {   
                return YELLOW;   
            }   
        },   
        YELLOW(5) {   
            public TranfficLamp nextLamp() {   
                return RED;   
            }   
        };   
        // 该枚举有一个抽象方法   
        public abstract TranfficLamp nextLamp();   
        // 该枚举有一个属性   
        public int time;   
        // 该枚举的构造方法必须要有一个int类型参数   
        private TranfficLamp(int time) {   
            this.time = time;   
        }   
    }   
}


  • 呆到深处自然萌
    - 03月04日 (0)

    啦啦啦啦啦啦,我是卖报的小行家


扫码关注TE官方微博 扫码关注TE官方微博
Android编程图片加载类ImageLoader定义与用法实例分析 AngularJs Creating Services详解及示例代码 让editplus3 函数模板完全显示函数 ADO与ADO.NET的区别与介绍 jsp+Servlet编程实现验证码的方法 JavaScript实现换肤功能 Windows下实现Python2和Python3两个版共存的方法 Jquery节点遍历next与nextAll方法使用示例 jquery ajax双击div可直接修改div中的内容 Js判断参数(String,Array,Object)是否为undefined或者值为空 mysql 5.7.13 解压缩版(免安装)安装配置教程 Jquery表单验证插件formValidator使用方法 parseInt parseFloat js字符串转换数字 使用overflow hidden来禁用页面滚动条 JS的replace方法介绍 淘宝段正淳的css笔记大全第1_4页 动态加载script文件的两种方法 你必须要知道的CSS特殊性概念 asp.net母版页如何使用 php使用异或实现的加密解密实例 asp.net用三层实现多条件检索示例 jQuery多条件筛选如何实现 原生js检测页面加载完毕的实例 IE8 新增的Javascript 开发接口说明 Nodejs中的JWT和Session的使用 ASP.NET与Ajax的实现方式小总结 js data日期初始化的5种方法 获取SQL Server2014的安装时间 Python 时间操作例子和时间格式化参数小结 js+ajax实现获取文件大小的方法 JavaScript结合HTML DOM实现联动菜单 一个新手如何一步一步做出自己的网站? javascript 设为首页与加入收藏兼容多浏览器代码 C#实现支持断点续传多线程下载客户端工具类 40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一 java实现利用String类的简单方法读取xml文件中某个标签中的内容 高手轻松教你如何针对DDos部署防御措施 Angular4绑定html内容出现警告的处理方法 在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency three.js快速入门【推荐】 mssql存储过程表名和字段名为变量的实现方法 linux系统使用python监控apache服务器进程脚本分享 基于jQuery实现表格的查看修改删除 js时间戳格式化成日期格式的多种方法 Android Intent实现页面跳转的方法示例 ASP.NET实现电影票信息的增删查改功能 详解HTML_XHTML中img图像标签的基本用法 Bootstrap每天必学之简单入门 3分钟快速搭建nodejs本地服务器方法运行测试html_js asp HTTP 500错误 常见问题分析 Android的AlertDialog详解 基于JQuery的购物车添加删除以及结算功能示例 Asp.net内置对象之Request对象(概述及应用) Python中对元组和列表按条件进行排序的方法示例 js获取css的各种样式并且设置他们的方法 PHP 微信扫码支付源代码(推荐) iOS 10 Today Widget解析 正则表达式模式匹配字符串基础知识 详解Lua中repeat...until循环语句的使用方法 使用JS轻松实现ionic调用键盘搜索功能(超实用) Java输出系统当前的日期(年月日时分秒毫秒) .Net下二进制形式的文件(图片)的存储与读取详细解析 js图片卷帘门导航菜单特效代码分享 AngularJs学习第五篇从Controller控制器谈谈$scope作用域 javascript中递归函数用法注意点 在Linux系统中使用Bzip2_Bunzip2处理压缩文件的教程 Javascript 运动中Offset的bug解决方案 Android Studio 当build时候出错解决办法 sql语句中如何将datetime格式的日期转换为yy-mm-dd格式 python sys模块sys.path使用方法示例 php通过array_push()函数添加多个变量到数组末尾的方法 Ajax实现图片上传并预览功能 Linux系统中Mysql的安装备份与密码恢复 Yii框架表单提交验证功能分析 JavaScript利用Date实现简单的倒计时实例 js数组与字符串常用方法总结 一个sql查询器,自动画表格填字段 discuz 跨域整合的记录文件 PostgreSQL教程(十三):数据库管理详解 jQuery实现点击小图显示大图代码分享 7个步骤打造史上最牛淘宝详情页 javascript获取隐藏元素(display none)的高度和宽度的方法 php获取图片信息的方法详解 献给Dedecms经常被挂马的站长朋友 python3.x实现发送邮件功能 SQL Server 服务器优化技巧浅谈 SWT(JFace)体验之ApplicationWindow 深入理解JS实现快速排序和去重 vue2.0页面前进刷新回退不刷新的实现方法 基于swoole实现多人聊天室 php中的登陆login实例代码 ANGULARJS中用NG-BIND指令实现单向绑定的例子 javascript获取下拉列表框当中的文本值示例代码 Android编程设计模式之观察者模式实例详解 基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码 oracle net manager 数据传输安全步骤详解 Python入门篇之对象类型 python搭建服务器实现两个Android客户端间收发消息 css实现div内图片上下左右居中 js返回顶部实例分享 基于原生js运动方式关键点的总结(推荐) Vue2.x中的Render函数详解 一段巧妙的css debug代码 为啥懒 Redis 是更好的 Redis VUE 使用中踩过的坑 Mysql5.7中JSON操作函数使用说明 基于Bootstrap分页的实例讲解(必看篇) python支持断点续传的多线程下载示例 通过数据库和ajax方法写出地图的实例代码 jQuery四种选择器使用及示例 jQuery is not defined 错误原因与解决方法小结 解决JQeury显示内容没有边距内容紧挨着浏览器边线 php将文件夹打包成zip文件的简单实现方法 node.js 中国天气预报 简单实现 jquery简单实现鼠标经过导航条改变背景图 纯JavaScript代码实现移动设备绘图解锁 asp.net 生成缩略图代码 js canvas实现擦除动画 python中使用iterrows()对dataframe进行遍历的实例 Windows下使用Nodejs运行js的方法 js onpropertychange输入框 事件获取属性 python之模拟鼠标键盘动作具体实现 使用jquery datatable和bootsrap创建表格实例代码 T-SQL篇如何防止SQL注入的解决方法 源码解读jQ中浏览器兼容模块support第1_2页 解决docker数据文件过大导致根磁盘满的问题 利用Swift如何计算文本的size示例详解 css3 transform及原生js实现鼠标拖动3D立方体旋转 如何通过javascript操作web控件的自定义属性 Docker容器中运行nginx JS 创建对象(常见的几种方法) jquery分页插件jquery.pagination.js使用方法解析 Python设计模式之观察者模式简单示例 js 表单提交后按钮变灰的实例代码 MySQL高可用解决方案MMM(mysql多主复制管理器) 如何使用CSS sprites减少HTTP请求 js实现的捐赠管理完整实例 CSS 美化段落文本之首字下沉 ThinkPHP的常用配置选项汇总 Linux Ubuntu的详细安装方法(图文教程) Linux find命令中-exec参数的作用介绍 asp.net 安全的截取指定长度的html或者ubb字符串 php使用exec shell命令注入的方法讲解 jquery1.5.1中根据元素ID获取元素对象的代码 JavaScript之Object类型介绍 一个基于flask的web应用诞生 flask和mysql相连(4) 一步步打造漂亮的新闻列表(无刷新分页、内容预览)第二步 jQuery实现简单网页遮罩层_弹出层效果兼容IE6、IE7 vue中引用swiper轮播插件的教程详解 Windows系统中完全卸载MySQL数据库实现重装mysql 自己常用的一些shell脚本分享 jQuery生成假加载动画效果 redux-saga 初识和使用 Python:Scrapy框架中Item Pipeline组件使用详解 js的参数有长度限制吗?发现不能超过2083个字符 jQuery web 组件 后台日历价格、库存设置的代码 Html5游戏开发之乒乓Ping Pong游戏示例(三) input标签内容改变的触发事件介绍 浅谈javascript中for in 和 for each in的区别 js实现杯子倒水问题自动求解程序 Python3中多线程编程的队列运作示例 基于nodejs+express4.X实现文件下载的实例代码 Centos7实现磁盘限额设置方法 使用PowerShell操作Windows服务的命令小结 JavaScript获取对象在页面中位置坐标的方法 第一次动手实现bootstrap table分页效果 用JS动态改变表单form里的action值属性的两种方法 JS定时器实现数值从0到10来回变化 javascript结合fileReader 实现上传图片 jquery利用拖拽方式在图片上添加热链接 VMware配置虚拟机静态IP地址的方法 详解linux下查看系统版本号信息的方法(总结) vuex中使用对象展开运算符的示例 php中base64_decode与base64_encode加密解密函数实例 php 类自动载入的方法 vue仿淘宝订单状态的tab切换效果 python的类方法和静态方法 微信小程序组件 contact-button(客服会话按钮)详解及实例代码 jquery单行文字向上滚动效果的实现代码 shell学习之printf命令格式化输出语句 ubuntu16.10安装docker17.03.0-ce并配置国内源和加速器 yii去掉必填项中星号的方法 Ajax留言本源码 提供下载了 AngularJS 控制器 controller的详解 在SQL触发器或存储过程中获取在程序登录的用户 在 webpack 中使用 ECharts的实例详解 Jquery 快速构建可拖曳的购物车DragDrop js控制li的隐藏和显示实例代码 PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法 Discuzx系统 CSS 编码规范、CSS属性书写顺序 解决JS外部文件中文注释出现乱码问题 浅谈Javascript面向对象编程 html5 Canvas画图教程(5)—canvas里画曲线之arc方法 HTML中使背景图片自适应浏览器大小实例详解 MySQL绿色版设置编码以及1067错误详解 javascript模拟map输出与去除重复项的方法 Python中正则表达式match()、search()函数及match()和search()的区别详解 利用QT写一个极简单的图形化Python闹钟程序 CentOS 7下用yum快速安装MongoDB的方法教程 ajax获取json数据为undefined原因分析
jQuery四格选项卡图片切换.zip spring+springmvc+mybastis+mysql的学生成绩管理页面 【PHP源码】Cyask v2.02版_cyask2.0.2.zip wordpress瀑布流图文主题.zip 小屏服装鞋子CSS模板.zip jquery图片放大带标题掉落.zip oldboy Shell高级编程实战第01、02部 视频教程 jquery表单文本框添加文字标签.zip jQuery圆形旋转导航.zip jQuery书架式图片缩放显示代码.zip CSS3悬停快速幻灯片.zip 企业人力资源管理项目SSH+EXTJS+MySQL整合开发 程序员给女朋友用HTML5制作的3D相册 java反编译工具,可以把class文件编译成java文件的好工具 java图形图象处理(论文+系统) 户外运动旅行网站模板.zip 浅蓝色简洁布局网站模板.zip jQ+css3平滑二级下拉导航.zip 消息中间件在分布式系统中的作用介绍与实例 国外jQuery动态瀑布流布局.zip jQuery JSON动态获取表格数据代码.zip 木材加工企业网站模板.zip 新闻媒体整站html模板下载.zip jQuery下拉日期选择插件.zip js+css3眼睛转动的猫头鹰特效.zip 网络世界html5网站模版.zip 宽屏运输公司网站模板.zip struts2+hibernate+Spring后台表格分页 jquery+easyui实现的后台框架 wordpress中文HelloMetro主题.zip 【PHP源码】WaStar 网上商店系统 v4.3_wastarshop4.zip 都市供求信息网-struts2架构的例程序(sqlserver数据库) 电脑之家jQuery焦点图.zip 仿Flash效果的两款Javascript+CSS滑动菜单.zip 灰褐博客CSS网页模板.zip jQuery带描述和小图的图片画廊.zip jsp+servlet ERP管理系统 jQuery鼠标放到图片上滑出提示文字.zip HTML5仿当当网手机条件筛选代码.zip 【ASP.NET源码】一个B2C电子商务全站源码 v1.0_b2c_dzsw.zip jquery拾色器插件iColor_2.zip jquery顶部固定导航下拉菜单.zip phpwind9.0合肥论坛.zip 紫色室内家居装修网站模板.zip jQuery可拖动窗口提示信息代码.zip jquery输入框邮箱下拉提示层.zip 基于java开发的服装销售系统 jQuery九宫格图片拉伸变大代码.zip SSH框架源代码(最简洁最干净的代码)注解方式 英语培训教育公司整站模板.zip 网站右下角广告展示代码.zip 【ASP.NET源码】SiteDynamic企业网站管理系统 v1.5.8_sitedynamc.zip jQuery选择中国大学的弹框.zip HTML5电子杂志翻书动画特效.zip 微信小程序源码-妈妈课堂 css3分页导航.zip CSS3实现3D人物走路动画特效.zip 手机跑步软件网站模板.zip jQuery纵向柱状体样式投票代码.zip 仿新乡医学院三全学院3g触屏版手机wap学校网站模板.zip fastdfs与dubbo整合实现分布式服务接口 3D旋转展示幻灯片jquery.zip 微信小程序源码-汽车测评小程序 jQuery单选多选按钮选中美化特效.zip CSS3实现3D螺旋动画特效.zip 粉红色大气外贸网站模板.zip 前台加密后台解密-非对称RSA加密方式-(支持中文) 商业购物CSS网页模板.zip jquery图片播放器.zip jQuery UI自定义样式日历代码.zip jquery简洁版左右切换焦点图.zip 国内外教学交流合作网页模板.zip 【ASP.NET源码】『人在旅途』全站程序_web.zip jQuery粘性滚动导航栏.zip maven+spring+spring mvc+mybatis整合实现ssm通用增删改查基础开发框架 远景论坛wordpress主题.zip 可爱个性宠物狗css模板.zip HTML5仿微信朋友圈图片展示代码.zip 图标集合资源库 Android调用系统的相机,图库以及对相片进行剪切的demo 可定制的实时搜索JQUERY插件.zip jQuery自动轮播旋转木马特效.zip jQuery简洁大气日程安排日历.zip 相册博客网页模板下载.zip 【ASP.NET源码】天涯网购 v1.0 Beta_tywg10.zip 仿中国健康网3G触屏版手机wap健康网站模板.zip Java 实现百度文档在线浏览功能(推荐) flash+xml焦点图轮换.zip jQuery手机端省市区三级联动代码.zip 微信小程序源码-地图查找附件(含后端) jQuery鼠标经过显示动画边框特效.zip jQuery自适应图片画廊插件.zip HTML5+CSS3滑块动画菜单.zip HTML5读书教育网站模板.zip 斜式按钮焦点图广告.zip JSP MYSQL SSH物流信息管理系统 jQuery扑克牌翻转特效.zip 横向跟随图片动画代码(jQuery).zip jQuery图片弹出层切换代码.zip 大气律师事务所网站模板.zip JAVA支付宝支付接口 HTML5超酷表单展示效果.zip jquery多彩百分比投票效果.zip jQuery手机手指滑动切换图片特效.zip java+ssh+SQL+bootstrap网上订餐系统全套源码 【ASP.NET源码】因特达留言板Asp.net v2009.09.20_yinteda_book.zip CSS3 Sprite僵尸行走动画特效.zip 酷蓝风格Html5网站模板.zip 办公墙CSS网页模板.zip HTML5抽奖页面16.zip jQuery弹出层垂直居中效果.zip 微信小程序源码-在线装修设计 Python基础教程(crossin全60课) Bootstrap 后台模板~ 灰色简洁响应式单页模板.zip 高端商务男装企业模板.zip 【PHP源码】weenCompany企业网站系统(CWS) 中英文测试版UTF8_weencompany.zip 购物车H5代码 jQuery移动端下拉加载动画代码.zip 锻炼健身单页网站模板.zip redis64-2.6.12.1.rar 亲测好用 【ASP.NET源码】荒野留言板alpha v0.22 源码版_huanyebook.zip jQuery实现点击替换图片.zip 【PHP源码】免费吧在线代理系统优化版 v0.1_ol_proxy.zip html5绿色wordpress模板.zip jquery仿微信聊天对话窗口滚动样式.zip 商务团队公司网站模板.zip 仿亿邦动力网移动版手机wap新闻网站模板.zip CSS3 3D立方体多边形动画特效.zip 宠物诊所css模板.zip 房地产公司网站模板.zip jQuery TAB文字列表自动切换.zip 医学医药类网站模板.zip 六屏js+flash焦点图轮换.zip 儿童用品公司HTML5网站模板.zip 拍照、图库多选图上传 绿色大气平面设计html5模板.zip Java swing带图GUI界面编写DVD租赁管理系统+(数据库文件) 韩国Flash产品展示程序.zip 在SSM基础上完成了文件上传与下载 jquery+html5视频播放器插件.zip 商业鞋店CSS网页模板.zip css3黑色酷炫导航.zip 【ASP.NET源码】倚天传奇全站系统_172g.zip jQuery橙色纵向下拉导航.zip html5动画电子生日贺卡特效.zip 室内设计扁平网站模板.zip 仿电脑桌面右键jQuery特效.zip jQuery全页图像预览画廊.zip Tab标签选项卡切换jQuery特效.zip jQuery旋钮插件jQuery knob.zip 微信小程序源码-movecss效果 临床护理移动端网站模板.zip jquery图片注释叠加效果.zip 小麦种植技术招商网站模板.zip 女性时尚门户网站模板.zip 毕业设计-Struts2+Hibernate4.2+Spring3的SSH2在线考试管理系统 粉色清爽404页面模板下载.zip CSS3鼠标滑过导航出现下划线动画特效.zip 【PHP源码】PrestaShop 1.2.3 Final_prestashop_1.2.3.0.zip jQuery洗牌式图片层叠切换.zip 带动画效果的jQuery手风琴.zip jQuery图片叠加翻页切换代码.zip jQuery带标题的3D图片切换代码.zip TiltViewer-3D图片浏览器.zip 竞技赛马HTML网站模板.zip 微信小程序源码-时政新闻 Python 建立一个模型来识别验证码成功率 基于javaee 的校园二手物品交易市场 jQuery抖动导航菜单效果.zip js对excel导入解析与导出 jQuery顶部大图定时缩为可关闭代码.zip jQuery表单输入文字计数显示代码.zip 灰色简洁wordpress主题.zip jsp+access网络书店销售管理系统(系统+论文+开题报告+任务书+摘要+英文文献) maven整合ssm框架+EhCache搭建(eclipse可直接运行) phpwind 19楼大杂烩.zip 暗蓝色法律网站模板.zip 图片分享CSS网站模板.zip jQuery旅行者竖直时间轴代码.zip js+css3下划线文字导航菜单特效.zip jQuery鼠标滑过图片3D显示文字特效.zip jquery大幅图片墙裁剪.zip 【PHP源码】深圳公交车线路查询系统 v1.0_sz.zip 【ASP.NET源码】全诚商城生成HTML门户版 v4.0_mhv4.zip 【ASP.NET源码】天涯海礁留言本_leavewordbook.zip Jave Swing 窗体图书管理系统,完美,毕业设计案例 多样式切换html5模板.zip jquery彩色弹动导航菜单.zip 可展开收缩的QQ客服.zip jQuery跟随滚动的侧边条效果.zip 【PHP源码】火车头web发布模块 For DedeCms v5正式版_dedecms_aj.zip css3 radius实现圆形动画特效.zip jQuery右侧tab标签切换焦点图.zip 微信小程序源码-简单的商城小应用 适合甜品店的CSS3幻灯片特效.zip jQuery+CSS3下拉高级搜索框特效.zip 蛋糕美食食品网站模板.zip 水疗按摩spa网页模板.zip ECShop 好乐买okbuy模板.zip
举报X