java枚举
2018-04-04 10:58
197 查看
一、概述
枚举是jdk1.5新增的功能枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。
使用场合: 如根据编码获取一个字符串
java SERVER_INNER(1,'服务器内部错误','zh-cn')
二、特征
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values()方法,这个方法使你能够方便的遍历所有的枚举值。 Color [] arr = Color.values();
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。
三、例子
package com.hesvit.test; public enum Week { MONDAY(1,"星期一","工作"), TUESDAY(2,"星期二","吃饭"), WEDNESDAY(3,"星期三","喝酒"), THURSDAY(4,"星期四","打牌"), FRIYDAY(5,"星期五","旅游"), SATURDAY(6,"星期六","搬砖"), SUNDAY(7,"星期日","开车"); private Week(int type,String weekname,String something) { this.type = type; this.weekname = weekname; this.something = something; } private int type; private String weekname; private String something; public Integer getType() { return type; } public String getWeekname() { return weekname; } public String getSomething() { return something; } /** * 根据type获取枚举 * LIPING */ public static Week getWeekByType(int type) { for(Week wk : values()) { if (wk.type == type) { return wk; } } return null; } public static void main(String[] args) { System.out.println("打印-1>:"+Week.FRIYDAY.getType()); System.out.println("打印-2>:"+Week.FRIYDAY.getWeekname()); System.out.println("打印-3>:"+Week.FRIYDAY.toString()); System.out.println("打印-4>:"+Week.valueOf("FRIYDAY")); System.out.println("打印-5>:"+Week.getWeekByType(Week.SUNDAY.getType()).getSomething()); } // 打印的结果 // 打印-1>:5 // 打印-2>:星期五 // 打印-3>:FRIYDAY // 打印-4>:FRIYDAY // 打印-5>:开车 }
相关文章推荐
- 黑马程序员_java高新技术 枚举
- java中的枚举(enum)
- 黑马程序员_Java中的枚举总结
- 黑马程序员:Java基础总结----枚举
- java的比特位枚举
- java的枚举enum的例子。
- Java中的枚举和迭代
- Java enum(枚举)的简单使用
- Freemarker调用java静态方法(也可以调用常量,枚举)
- Java基础加强: Jdk1.5新特性 枚举
- 三分钟快速掌握Java中枚举(enum)
- Java 枚举与类的区别
- Java enum(枚举)使用详解之二
- java 枚举类型分析
- K:java枚举的常见用法
- java enum枚举类型
- java夯实基础系列:枚举
- Java - 基础增强 - 增强for - 可变参数 - 枚举 - 反射 - 内省 - 泛型
- java高新技术、枚举
- java之注解、枚举理解(高效java之注解、枚举)