黑马程序员_关于API1.5新特性之枚举
2015-08-23 19:39
288 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
复习到了枚举,把笔记稍微整理了下,分享给大家,希望能互相帮助。
使用枚举的注意事项:
定义枚举类要用关键字enum
所有枚举类都是Enum的子类
枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);
枚举类也可以有抽象方法,但是枚举项必须重写该方法
枚举在switch语句中的使用
枚举类的常见方法
int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
int compareTo(E o)比较两个枚举对应的角标值的差
String name() 获取对应枚举项的名字
String toString()获取对应枚举项的名字
<T> T valueOf(Class<T> type,String name) 返回带指定名称的指定枚举类型的枚举常量
values()
此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便
例子:演示枚举类中的常用方法
public class DirectionDemo {
public static void main(String[] args) {
// 获取对应的枚举项
Direction front = Direction.FRONT ;
Direction after = Direction.AFTER ;
Direction left = Direction.LEFT ;
Direction right = Direction.RIGHT ;
//int ordinal(): 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
System.out.println(front.ordinal());
System.out.println(after.ordinal());
System.out.println(left.ordinal());
System.out.println(right.ordinal());
System.out.println("-------------------------------");
// int compareTo(E o)
System.out.println(front.compareTo(after));
System.out.println(front.compareTo(right));
System.out.println("-------------------------------");
// String name()
System.out.println(front.name());
System.out.println(after.name());
System.out.println(left.name());
System.out.println(right.name());
System.out.println("-------------------------------");
// String toString()
System.out.println(front.toString());
System.out.println(after.toString());
System.out.println(left.toString());
System.out.println(right.toString());
System.out.println("-------------------------------");
// public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)返回带指定名称的指定枚举类型的枚举常量。
Direction direction = Enum.valueOf(Direction.class, "FRONT") ;
System.out.println(direction.ordinal());
System.out.println(direction);
System.out.println("-------------------------------");
// values() : 获取所有的枚举项
Direction[] dirs = Direction.values() ;
for(Direction dir : dirs){
System.out.println(dir);
}
}
}
enum Direction {
FRONT , AFTER ,LEFT , RIGHT ;
}
复习到了枚举,把笔记稍微整理了下,分享给大家,希望能互相帮助。
使用枚举的注意事项:
定义枚举类要用关键字enum
所有枚举类都是Enum的子类
枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);
枚举类也可以有抽象方法,但是枚举项必须重写该方法
枚举在switch语句中的使用
枚举类的常见方法
int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
int compareTo(E o)比较两个枚举对应的角标值的差
String name() 获取对应枚举项的名字
String toString()获取对应枚举项的名字
<T> T valueOf(Class<T> type,String name) 返回带指定名称的指定枚举类型的枚举常量
values()
此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便
例子:演示枚举类中的常用方法
public class DirectionDemo {
public static void main(String[] args) {
// 获取对应的枚举项
Direction front = Direction.FRONT ;
Direction after = Direction.AFTER ;
Direction left = Direction.LEFT ;
Direction right = Direction.RIGHT ;
//int ordinal(): 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
System.out.println(front.ordinal());
System.out.println(after.ordinal());
System.out.println(left.ordinal());
System.out.println(right.ordinal());
System.out.println("-------------------------------");
// int compareTo(E o)
System.out.println(front.compareTo(after));
System.out.println(front.compareTo(right));
System.out.println("-------------------------------");
// String name()
System.out.println(front.name());
System.out.println(after.name());
System.out.println(left.name());
System.out.println(right.name());
System.out.println("-------------------------------");
// String toString()
System.out.println(front.toString());
System.out.println(after.toString());
System.out.println(left.toString());
System.out.println(right.toString());
System.out.println("-------------------------------");
// public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)返回带指定名称的指定枚举类型的枚举常量。
Direction direction = Enum.valueOf(Direction.class, "FRONT") ;
System.out.println(direction.ordinal());
System.out.println(direction);
System.out.println("-------------------------------");
// values() : 获取所有的枚举项
Direction[] dirs = Direction.values() ;
for(Direction dir : dirs){
System.out.println(dir);
}
}
}
enum Direction {
FRONT , AFTER ,LEFT , RIGHT ;
}
相关文章推荐
- 剑指offer面试题17-合并两个排序的链表
- 剑指offer面试题16-反转链表
- 黑马程序员----IO流以及文件的操作
- 黑马程序员——Java基础正则表达式、反射
- 黑马程序员-----Java之你不得不知道的排序
- 黑马程序员------关于分布式
- 黑马程序员-[OC]学习之旅-block和protocol的概念及使用
- 黑马程序员------关于有效的性能调优的一些建议
- 关于内存的面试题
- 黑马程序员_反射中常用的方法笔记小结
- 一道hadoop面试题
- 黑马程序员--面向对象设计
- 【黑马程序员】ARC机制介绍及使用
- 黑马程序员----Java多线程
- 黑马程序员----Java内存问题
- 黑马程序员------Java深度之—关于 hashCode() 你需要了解的 3 件事
- 面试精选:链表问题集锦 转
- 黑马程序员—————Java基础----集合(二)set、map等
- 秒杀多线程第一篇——多线程笔试面试题汇总
- 黑马程序员--Java基础学习(IO流及字符编码)第二十一天