java枚举类知识整理
来源:互联网 发布:php语言好学吗 编辑:程序博客网 时间:2024/05/21 23:32
Java枚举类
一、枚举类的特性
- 使用enum关键字定义枚举类,其默认继承Enum类,默认使用final修饰符:
1、public enum EnumTest{}
2、public final class EnumTest extends Enum{}
- 枚举类构造器 默认 并 只能 使用private访问控制符
- 枚举类的所有实例必须在第一行显示列出,而且会默认添加public static final修饰。所有实例用逗号(,)隔开,用分号(;)结束
二、Enum类常用方法
- int ordinal():返回枚举值在枚举类里面的声明的位置,即索引值
- int compareTo(E o):枚举值之间的索引顺序比较
- String name():返回枚举值的名称
- String toString():返回枚举值的名称
- valueOf(Class enumType, String name):感觉很鸡肋
1、Gender gender = Enum.valueOf(Gender.class, "FEMALE")
2、Gender gender = Gender.FEMALE
- valueOf( String name):编译器插入,Enum类不能调用。
- values():返回所有的枚举值。该方法是由编译器插入的。
示例代码:
enum MyEnum{ SPRING, SUMMER, FALL, WINTER;}public class EnumTest { public static void main(String[] args){ System.out.println(MyEnum.SUMMER.ordinal()); System.out.println(MyEnum.WINTER.ordinal()); System.out.println(MyEnum.SUMMER.compareTo(MyEnum.WINTER)); System.out.println(MyEnum.SPRING.toString().equals("SPRING")); System.out.println(MyEnum.FALL.name().equals("FALL")); MyEnum myEnum = MyEnum.valueOf(MyEnum.class, "SPRING"); System.out.println(MyEnum.SPRING.equals(myEnum)); for (MyEnum myEnum1 : MyEnum.values()){ System.out.print(myEnum1.name() + " "); } System.out.println(); System.out.print(MyEnum.SPRING.equals(MyEnum.valueOf("SPRING"))); }}
输出结果:
13-2truetruetrueSPRING SUMMER FALL WINTER true
三、枚举类使用
1、带有抽象方法的枚举类:实现具有不同行为的枚举常量
public enum Operation { PLUS{ public double calculate(double x, double y){ return x + y; } }, MINUS{ public double calculate(double x, double y){ return x - y; } }; public abstract double calculate(double x, double y); public static void main(String[] args){ System.out.println(Operation.PLUS.calculate(1, 2)); }}
2、实现接口的枚举类:在枚举值里面实现接口方法,或者在枚举类中实现接口方法
3、用在switch语句里面:因为枚举值天生具有整形值的次序。
4、EnumSet与EnumMap:EnumSet是Java SE5引进的,用来代替传统的基于int的“位标志”;EnumMap代替序数索引。
阅读全文
0 0
- java枚举类知识整理
- Java知识整理(十一)之枚举
- Java 枚举类整理
- java 集合类知识整理
- Java集合类知识整理
- JAVA异常知识整理
- Java知识整理
- Java知识整理
- java文件知识整理
- Java多线程知识整理
- java 队列知识整理
- Java知识整理
- java知识整理
- Java知识整理
- java知识体系整理
- Java知识链整理
- java知识整理
- java知识零碎整理
- 栈的应用--马踏棋盘-DFS搜索
- python圣斗士修炼(四):数据类型
- PR10.21:Trust Region Policy Optimization
- 阿里云服务器使用设置
- 返回值增加新字段
- java枚举类知识整理
- 2014 Benelux Algorithm Programming Contest (BAPC 14)
- Eclipse运行struts2项目报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.Strut
- java 集合
- PAT A1021. Deepest Root (25)
- 配置Centos的虚拟机网卡
- Leetcode: 130. Surrounded Region(Week7, Medium)
- Mybatis 动态SQL语句
- Linux内核:基于int指令的经典系统调用过程分析