Java 枚举
2015-11-17 14:49
453 查看
/*
* 枚举是JDK 1.5 引入 在java.lang中
* 常用的方法 有int CompareTo(E e) 比较此枚举与指定对象的顺序
* Class<E> getDeclaringClass() 返回与此枚举类型对应的Class 对象
* String name() 返回枚举对象的名称 在枚举申明中对其进行申明
* int ordinal() 返回枚举常量的序数
* String toString()
* Static <T extends Enum<T>> T valueOf(Class<T> enumType,String name) 返回带指定名称的指定枚举类型的枚举常量
可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
*/
* 枚举是JDK 1.5 引入 在java.lang中
* 常用的方法 有int CompareTo(E e) 比较此枚举与指定对象的顺序
* Class<E> getDeclaringClass() 返回与此枚举类型对应的Class 对象
* String name() 返回枚举对象的名称 在枚举申明中对其进行申明
* int ordinal() 返回枚举常量的序数
* String toString()
* Static <T extends Enum<T>> T valueOf(Class<T> enumType,String name) 返回带指定名称的指定枚举类型的枚举常量
可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
*/
package com.test.Enum; public class EnumDemo { public enum ColorEnum { // 普通枚举 red, green, black, pink; } public enum SeasonEnum { // 枚举需要写在最前面 否则编译出错 枚举可以像普通类一样 带有属性和方法 spring, summer, autumn, winter; private static final String position = "test"; public static SeasonEnum getSeason() { if ("test".equals(position)) { return spring; } else { return winter; } } } public enum Gender { // 通过括号赋值,并且必须带有一个参数构造方法和一个属性 另外一个方法 否则编译出错 MAN("MAN"), WOMAN("WOMAN"); private final String Value; private Gender(String Value) { this.Value = Value; } public String getValue() { return Value; } } public enum OrderState { // 带抽象方法的枚举 CANCEL { public String getName() { return "已取消"; } }, WAITING { public String getName() { return "待审核"; } }, WAITPAMENT { public String getName() { return "待支付"; } }, ADMEASUREPRODUCT { public String getName() { return "正在配送"; } }, WAITDELIVER { public String getName() { return "等待发货"; } }, DELIVERED { public String getName() { return "已发货"; } }, RECEIVED { public String getName() { return "已收货"; } }; public abstract String getName(); } public static void main(String[] args) { // 枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值; ColorEnum colorEnum = ColorEnum.black; switch (colorEnum) { case red: System.out.println("color is red"); break; case green: System.out.println("color is green"); break; case black: System.out.println("color is black"); break; case pink: System.out.println("color is pink"); break; default: break; } // 遍历枚举 System.out.println("遍历ColorEnum中的值:"); for (ColorEnum colorEnum2 : ColorEnum.values()) { System.out.println(colorEnum2); } // 获取枚举的个数 int mount = ColorEnum.values().length; if (mount > 0) { System.out.println("枚举有" + mount + "个"); } // 获取每个枚举值 所在位置的索引 System.out.println("红色所在位置索引:" + ColorEnum.red.ordinal()); System.out.println("黑色所在位置的索引:" + ColorEnum.black.ordinal()); System.out.println("粉色所在位置的索引:" + ColorEnum.pink.ordinal()); System.out.println("绿色所在位置的索引:" + ColorEnum.green.ordinal()); System.out.println("枚举默认实现了Comparable接口:"); System.out.println(ColorEnum.red.compareTo(ColorEnum.green)); System.out.println("季节为:" + SeasonEnum.getSeason()); System.out.println("=============="); for (Gender gender : Gender.values()) { System.out.println(gender.Value); } System.out.println("========="); for (OrderState orderState : OrderState.values()) { System.out.println(orderState.getName()); } } }
相关文章推荐
- 关于eclipse的 error generating final archive这个错误
- java保留两位小数
- java的System.getProperty()方法可以获取的值
- JDK并发工具类源码学习系列——CopyOnWriteArrayList
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功能
- java.lang.RuntimeException: Can't create handler inside thread that has not cal
- javaWeb xml文件和properties文件
- Java线程池使用说明
- JAVA多线程--信号量(Semaphore)
- Java自带线程池
- SpringMVC学习系列(3) 之 URL请求到Action的映射规则
- JAVA导出Excel
- Java dbf文件写入远程服务器
- SpringMVC学习系列(2) 之 经典的HelloWorld实现
- Java开发中的23种设计模式详解(转)
- Spring如何下载
- UNICODE转码成中文
- java实现括号匹配
- 使用Eclipse for J2EE 开发Web程序