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

Java5 枚举类型使用总结

°Worldwea 于 2016-04-23 19:44:38 创建话题
(4016)
(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官方微博
php ajax无刷新分页,支持id定位 使用AngularJS制作一个简单的RSS阅读器的教程 Ruby面向对象编程详解 JS文本获得焦点清除文本文字的示例代码 Ajax发送和接收请求 javascript中取前n天日期的两种方法分享 jQuery动态背景图片效果实现方法 PHP写的加密函数,支持私人密钥(详细介绍) Zend Framework入门教程之Zend_Mail用法示例 编写轻量ajax组件01-与webform平台上的各种实现方式比较 H5实现中奖记录逐行滚动切换效果 js显示动态时间的方法详解 简介AngularJS中使用factory和service的方法 linux中Centos7增加swap分区详解 ajax php传递和接收变量实现思路及代码 Vue 项目部署到服务器的问题解决方法 javascript数组随机排序实例分析 Java Web实现的基本MVC实例分析 深入浅出webpack之externals的使用 React diff算法的实现示例 详解Linux系统中inode索引节点已满问题的解决方法 Oracle 12c实现手工建库而非CDB及CDB创建的方法 AngularJS中的JSONP实例解析 jsp地址栏传中文显示乱码解决方法分享 python3 对list中每个元素进行处理的方法 MySQL 压缩的使用场景和解决方案 PHP正则表达式基础入门 php常量详细解析 php把时间戳转换成多少时间之前函数的实例 javascript每日必学之多态 如何用htmlEncode来显示Unicode? js 调用百度地图api并在地图上进行打点添加标注 CSS的position属性完全解析 Python基于pycrypto实现的AES加密和解密算法示例 判断JS对象是否拥有某属性的方法推荐 mssql 区分大小写的详细说明 jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍 在centos7下安装和部署java8和mysql JQuery与Ajax调用新浪API获取短网址的代码 jQuery实现的背景颜色渐变动画效果示例 php安全开发 添加随机字符串验证,防止伪造跨站请求 jQuery插件jquery-barcode实现条码打印的方法 JS中的作用域链 深入解读CSS的OOCSS和SMACSS以及BEM bash脚本中if语句的使用方法 js相册效果代码(点击创建即可) 对xmlHttp对象方法和属性的理解 PHP实现的文件操作类及文件下载功能示例 js实现文字在按钮上滚动的方法 Asp.net中使用PageDataSource分页实现代码 67 个节约开发时间的前端开发者的工具、库和资源 PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法 Python 返回汉字的汉语拼音 JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同) Jquery 在页面加载后执行的几种方式 基于Jquery插件实现跨域异步上传文件功能 PHP+jQuery 注册模块的改进(一):验证码存入SESSION Angular6笔记之封装http的示例代码 CSS在固定宽高的div内实现垂直居中的实例详解 jquery基础教程之deferred对象使用方法 AlertBox 弹出层信息提示框效果实现步骤 Angular 4 指令快速入门教程 python numpy格式化打印的实例 第11天 不用表格的菜单 mysql 正则表达式查询含有非数字和字符的记录 Spring cloud restTemplate 传递复杂参数的方式(多个对象) 深入解析JavaScript中的arguments对象 vue教程之toast弹框全局调用示例详解 连续序号的 sql语句 jQuery 插件封装的方法 Maven nexus 安装nexus私服出现的问题和解决办法 ASP.NET Core 2.0 带初始参数的中间件问题及解决方法 Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子 微信扫码支付(PC端) 使用Node.js实现RESTful API的示例 WEB高性能开发之疯狂的HTML压缩 浏览器全屏显示背景图片的css样式与html结构 Bootstrap Tree View简单而优雅的树结构组件实例解析 ajax传递多个参数具体实现 PHP面向对象学习笔记之二 生成对象的设计模式 Android webview 内存泄露的解决方法 asp.net core mvc实现文件上传实例 Flutter质感设计之表单输入 python实现获取客户机上指定文件并传输到服务器的方法 find命令实例 linux日志定期迁移实现方法 Bootstrap基础学习 mongodb 命令行下及php中insert数据详解 简单介绍Python中的几种数据类型 JavaScript作用域与作用域链深入解析 Date对象格式化函数代码 js 获取class的元素的方法 以及创建方法getElementsByClassName Android使用surfaceView自定义抽奖大转盘 Java位运算知识点详解 关于多对多关系表无法更新与插入的问题 jquery动态改变onclick属性导致失效的问题解决方法 ubuntu安装微软雅黑字体并设置chrome的字体为微软雅黑 仿酷狗html5手机音乐播放器主要部分代码 JavaScript判断用户名和密码不能为空的实现代码 js图片轮播手动切换效果 SQL Server 2012 多表连接查询功能实例代码 jQuery实现的鼠标经过时变宽的效果(附demo源码) JS window.onload的使用介绍 node.js使用免费的阿里云ip查询获取ip所在地【推荐】 jQuery实现点击小图显示大图代码分享 AngularJS基础 ng-open 指令简单实例 Android开发之瀑布流控件的实现与使用方法示例 扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路 AngularJS中控制器函数的定义与使用方法示例 JavaScript中的toDateString()方法使用详解 JQuery中使用Ajax赋值给全局变量失败异常的解决方法 代替正则——HyperScriptExpression联合开发倡议公告 可用分区不足Linux VPS系统盘如何分区 sqlserver中Case的使用方法(上下篇)第1_2页 浅谈Python单向链表的实现 解决python3 urllib中urlopen报错的问题 javascript中的startWith和endWith的几种实现方法 Vue组件化通讯的实例代码 python如何使用unittest测试接口 JQuery 将元素显示在屏幕的中央的代码 Unix的入侵追踪 使用jQuery判断Div是否在可视区域的方法 判断div是否可见 jquery如何实现在加载完iframe的内容后再进行操作 parabola.js抛物线与加入购物车效果的示例代码 Android实现直播聊天区域中顶部的渐变效果 ThinkPHP CURD方法之data方法详解 大势至电脑文件防泄密系统的比较优势,专业的电脑数据防泄漏软件 vue.js实现价格格式化的方法 原生JS Date对象全面解析 fckeditor常用Js,获取fckeditor内容,统计fckeditor字数,向fckeditor写入指定代码 MySQ登录提示ERROR 1045 (28000)错误的解决方法 PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析 Three.js学习之几何形状 .NET Core中使用HttpClient的正确姿势 Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享 python实现域名系统(DNS)正向查询的方法 mongodb 集群重构和释放磁盘空间实例详解 Python中列表与元组的乘法操作示例 spring boot thymeleaf 图片上传web项目根目录操作步骤 linux系统安装出错提示this kernel requires an x86怎么办? Python动态加载模块的3种方法 PHP加密扩展库Mcrypt安装和实例 CSS对Web页面载入效率的影响分析总结 iOS UIImageView图片自动拉伸功能 JS实现输入框提示文字点击时消失效果 JQuery文字列表向上滚动的代码 javascript点击按钮实现隐藏显示切换效果 Windows Powershell 定义变量 html特殊符号示例 html特殊字符编码对照表 asp.net Ajax 安装与卸载方法 jquery下拉select控件操作方法分享(jquery操作select) javascript中返回顶部按钮的实现 PHP设计模式之责任链模式的深入解析 php利用正则表达式取出图片的URL 30个精美的jQuery幻灯片效果插件和教程 JavaScript正则表达式验证中文实例讲解 JavaScript不使用prototype和new实现继承机制 使用dubbo+zookeeper+spring boot构建服务的方法详解 JavaScript 原型继承之构造函数继承 Jquery uploadify 多余的Get请求(404错误)的解决方法 ucenter通信原理分析 js实现百度登录框鼠标拖拽效果 Mysql判断表字段或索引是否存在 使用 Python 获取 Linux 系统信息的代码 MySQL MEM_ROOT详解及实例代码 javascript与jquery中的this关键字用法实例分析 jQuery模拟超链接点击效果代码 jQuery 入门讲解1 MUI Scroll插件的使用详解 ASP调用WebService转化成JSON数据,附json.min.asp MVC异常处理详解 JS两种类型的表单提交方法实例分析 js 手机号码合法性验证代码集合 python制作小说爬虫实录 js获取Get值的方法 jQuery左侧大图右侧小图焦点图幻灯切换代码分享 Java-web中利用RSA进行加密解密操作的方法示例 mysql 5.7以上版本下载及安装图文教程 JavaScript 中 avalon绑定属性总结 Mongodb 忘记密码的解决办法 jQuery旋转木马式幻灯片轮播特效 PHP读取数据库并按照中文名称进行排序实现代码 CentOS环境下安装PHPUnit的方法分析 跟老齐学Python之不要红头文件(1) 移动端HTML5实现文件上传功能【附代码】 Javascript 实现放大镜效果实例详解 Python中声明只包含一个元素的元组数据方法 jsp Ewebeditor使用说明 总结Python编程中函数的使用要点 .NET Core_Framework如何创建委托大幅度提高反射调用的性能详解 Vue学习之路之登录注册实例代码 用CSS来控制图片显示大小的代码 传统企业该如何把握微信营销商机? linux 系统telnet乱码 JavaScript学习笔记之定时器 Python get获取页面cookie代码实例 JS表格组件神器bootstrap table详解(基础版) 网页制作人员在设计网页时注意的细节 dedecms5.7商城系统游客可下订单购买的修改方法 Python使用xlwt模块操作Excel的方法详解 Java基于外观模式实现美食天下食谱功能实例详解
jQuery图片添加热链接代码.zip MOONSEO研究中心第49期VIP全部课程(VIP课程+基础课程)【780MB】 jQuery蓝色商品分页样式代码.zip 纯CSS3有序列表样式.zip 匹萨饼店CSS3模板.zip jQuery环形旋转幻灯片.zip jquery.LoadImage图片预加载.zip js select选中显示不同表单内容.zip 汽车修理厂网站模板.zip jquery ui制作html5网站游戏.zip 纯CSS3实现简易3D按钮.zip Android ProductTour 非常漂亮大方的引导页欢迎页面 黑色简洁CSS网页模板.zip HTML5 Canvas彩色像素进度条特效.zip jQuery鼠标滚轮控制幻灯片切换.zip jquery侧边栏鼠标跟随滑块.zip 仿世纪佳缘源码仿世纪佳缘模板Php+Mysql交友网站源码程序 仿163网盘无刷新文件上传 for Jsp jQuery纵向TAB星期任务列表代码.zip CSS3分步注册表单.zip 女性时尚美容网站模板.zip 创意营销机构网页模板.zip jQuery Tag文本标签特效.zip 微信小程序源码-简单的商城小应用 微信小程序源码-礼物商城 简洁风琴标签导航代码.zip jQuery斜式滑动导航.zip html5手机端信息筛选条件代码.zip 基于WEB的网上招聘管理系统 QQ登录框背景渐变动画特效.zip 微信小程序源码-装修预约小程序 蓝色清爽旅行网站模板.zip CSS3实现伪对象立体按钮效果.zip 针线类企业CSS网页模板.zip 酒店官网网站模板下载.zip bootstrap前端模板 百度轻博客帝国cms模板.zip HTML5橙色后台管理网站模板.zip jQuery响应式线条滑出列表特效.zip jQuery缩略图突出圆角焦点图.zip Materialize后台管理模板 豪车经销商HTML5模板.zip jQuery消除方块小游戏源码.zip 看雪论坛客户端源码 HTML5手机端相册触屏滑动切换特效.zip jQuery平滑返回顶部代码.zip spa美容培训网站模板.zip jQuery+HTML5+CSS3绚丽变换组合.zip 电子产品设计网站模板.zip 黑色质感HTML5播放器代码.zip Activity切换动画+时间日期选择器 jQuery无限循环手风琴.zip 人脸识别 b2c商城购物网站模板.zip 【PHP源码】网站综合信息查询工具SiteInfoChecker v1.0_siteinfochecker10.zip jQuery左右滑动切换时间轴代码.zip 微信小程序源码-抽奖转盘 绿色健身运动HTML5模板.zip 鼠标滚轮滚动CSS3网站模板.zip HTML5全屏图文左右滑动切换特效.zip 【PHP源码】chat-book_chat-book.zip HTML5 Canvas指针时钟表特效.zip 右侧按钮自动滑动图片切换特效.zip jQuery个性圆圈倒计时特效.zip jquery图片滑动排列.zip 威锋商城右侧jQuery悬浮菜单.zip jQuery组织结构图表插件OrgChart.zip jQuery带日期的指针时钟.zip css3列表FAQ问答特效.zip bootstrap模态框弹出效果.zip jQuery手机端商品手指滑动切换代码.zip 英语教育培训网站模板.zip jQuery Lightbox图片放大预览代码.zip 微信小程序源码-redux绑定 爱狗爱猫人士网站模板.zip 蓝色清爽窄屏单页模板.zip jQuery小球弹动归位.zip jQ悬浮滑动显示全图.zip 电脑手机维修公司官网模板.zip 网页顶部固定jQ在线客服.zip CSS3垂直手风琴折叠菜单.zip 大麦网首页侧边jQuery导航.zip 商务企业CSS网页模板.zip HTML5 个人简历模板 HTML5 Canvas指针大转盘抽奖代码.zip HTML5网站即将上线单页面特效.zip 清爽蓝色风格帝国cms模板.zip 【ASP.NET源码】生成静态新闻源码 v1.0_creathtml.zip 蓝色wap企业手机网站模板.zip 阿里巴巴Java开发手册v1.2.0 jQuery实现滚动新闻代码下载.zip 游戏机企业网站模板.zip SpringMvc+Spring+Mybatis Web项目搭建 仿155安卓(安致)网移动版手机wap软件网站模板.zip jquery投票百分比特效.zip 高端HTML5响应式自适应企业通用类织梦模板 dedecms大气网站源码 jQuery图片垂直切换幻灯片代码.zip jquery坐标垂直滚动菜单.zip Java Servlet开发的可用于java毕业设计的甜品糕点整站源码 微信小程序源码-猎手搜索(含后端) 【PHP源码】Lightemplate (php模版类)_lightemplate.zip 非常好看的BOOTSTRAP 整站前台模板 基于Spring+SpringMVC+mybatis的框架 汽车之家2015新版焦点图代码.zip jquery动态画廊滚动效果.zip struts2.3.8spring3.2.1hibernate4.2.0最新整合 别墅房地产Bootstrap模板.zip 右侧悬浮jquery在线客服.zip jQuery幻灯片插件Skippr.zip jQuery+CSS3指针时钟特效.zip s2sh开发失物招领项目,包括前台页面和后台管理系统 【PHP源码】LxShop多用户商城系统 v2.0 繁体中文版_lxshops_big5_2.0.zip jQuery多功能秒表闹钟计时器插件.zip JS交互式3D相册切换模糊特效.zip jQuery动态新闻滚动.zip jquery油画缩略图.zip jQuery双语切换下拉导航.zip HoverAccordion jQuery层式菜单.zip jQuery手机端省市区三级联动代码.zip Detail_Admin好用的bootstrap后台模板 美味佳肴饮食网站模板.zip 仿京东.zip 基于ssm的物流管理系统的实现 Spring4.3+SpringMVC4.3+Mybatis3+EASYUI整合 Android socket通讯的长连接 大屏清爽旅游网页模板.zip HTML5实现简单进度条效果.zip 仿中企动力手机wap企业网站模板.zip h5游戏源码免费下载 - 辣椒人跑酷 个人名片滑动切换模板.zip 高仿微信语音录制 微信小程序 - 变态方块小游戏.zip 恋爱结婚婚庆公司HTML5模板.zip HTML5 MP3音乐播放器代码.zip 【ASP.NET源码】Goberl友情链接系统源码_goberllink.zip 路由器交换机报价网站模板.zip css3淡出淡进开场动画效果.zip 蓝色扁平商务公司模板.zip 微信小程序源码-基础商城 电器公司网站html模板.zip 【PHP源码】php168整站2008 v5.0 build 090116 繁体中文版 big5_php168_2008_big5.zip jQuery全屏幻灯片插件finger.zip jquery右侧随滚动条浮动导航代码.zip 微信小程序源码-wechat-v2ex jQuery鼠标悬停文字渐隐渐现动画效果.zip jQuery实现重力模拟效果.zip java三大框架(SSH)+EXTJS物流管理系统源代码 【PHP源码】FUDforum 2.7.5_fudforum2.zip jQuery点击图片拖动放大查看效果.zip CSS3图片全屏显示.zip 帝国CMS懒人图库模板.zip Spring MVC+easyUI+mybatis开发网站后台管理系统源代码下载 必趣网首页jQuery焦点图.zip spring+springmvc+mybastis+mysql的学生成绩管理页面 jquery hover鼠标滑过动画导航条.zip BBS论坛项目jsp+mysql jQuery带步骤找回密码表单代码.zip 航空票务管理系统 spring+strut+hibernate jQuery超酷动态弹出表单.zip 登陆页面html天蓝色模板.zip nginx+springboot+dubbo +redis session共享 韩国房产模板.zip Bootstrap网站模板 jQuery+CSS3堆叠式面板切换特效.zip jQuery实现Markdown编辑器插件.zip jQuery画廊插件least.js.zip 分类信息网站html5模板.zip 简单的js俄罗斯方块游戏源码.zip jQ自动化图片比例焦点图.zip 带节假日JS万年历控件代码.zip js透明按钮图片滑动切换焦点图.zip jquery带下拉按钮幻灯片.zip 8屏轮播切换jquery焦点图.zip CSS3 SVG表白鲜花动画特效.zip DrupalCMS antique_modern.zip HTML5绿色农业网站模板.zip jquery医院网站banner切换特效.zip JavaEE的Spring-Hbernet-Strus搭建的项目框架(可用于实际项目) 蓝色风格云主机网站模板.zip 【PHP源码】WordPress v2.0.4 中文稳定版_wordpress.zip 多方向滚动的焦点图jQuery特效.zip JAVA支付宝支付接口 美食食谱大全网站模板.zip 微信小程序源码-环球小镇 微信小程序源码-仿善林宝 【ASP.NET源码】八方商厦网上商城系统 v2.0_shop8f.zip jQuery鼠标点击弹出粒子效果动画.zip js摄影作品陈列代码.zip 带索引按钮的jQuery滑块.zip jQuery创意字体特效.zip 微信小程序 - 咩咩单词.zip 【ASP.NET源码】小牛博客(xiaoniuBlog) v0.1 测试版_xiaoniublog.zip 【ASP.NET源码】GGCMS企业自助建站内容管理系统 v1.1_ggcms_v1.1.zip jQuery鼠标悬浮图片放大特效.zip 千百汇家居商城新人引导动画.zip 【ASP.NET源码】青年创业人才系统_youthjob.zip jQuery+CSS3实现动画滑块幻灯片.zip 孤儿院慈善网站模板.zip HTML5 3D折页立体焦点图代码.zip Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis)
举报X