黑马程序员——枚举
2014-03-17 03:33
134 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、枚举存在的意义
枚举:顾名思义,就是把所有的可能性都列举出来。对于这些可以列举出所有可能性,并且常用的常量,我们可以使用枚举来定义它。(如:星期XXX)
枚举私有化了它的构造方法,即使是映射也没办法返回枚举的构造方法。所以它的常量对象是固定的。
二、枚举的创建方式
(public)enum XXX(){
枚举对象1,枚举对象2....
}
三、枚举中返回对象所代表值得方法(这里以星期XXX为例)
1、在枚举中预留抽象的get()方法,然后再枚举实例中分别实现
2、在枚举中直接实现get()方法,使用switch,case的方式获取返回值
四、枚举与基本数据类型
Java中基本数据类型内,有部分就是使用枚举创建在了Java底层,他们始终只存在唯一的引用地址。
例如:Integer中-128---127。由于使用频率较高,在底层创建唯一的引用地址(枚举对象),减少了运行过程中的对象创建,提高效率。
EnumMap:将枚举对象作为key,将枚举对应的值作为值。创建一个空的map集合。
EnumSet :将枚举对象作为集合内容,创建set集合。多用于对枚举中部分内容的操作。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、枚举存在的意义
枚举:顾名思义,就是把所有的可能性都列举出来。对于这些可以列举出所有可能性,并且常用的常量,我们可以使用枚举来定义它。(如:星期XXX)
枚举私有化了它的构造方法,即使是映射也没办法返回枚举的构造方法。所以它的常量对象是固定的。
二、枚举的创建方式
(public)enum XXX(){
枚举对象1,枚举对象2....
}
三、枚举中返回对象所代表值得方法(这里以星期XXX为例)
1、在枚举中预留抽象的get()方法,然后再枚举实例中分别实现
public enum DayOfWeek { SUN{ @Override public String get() { // TODO Auto-generated method stub return "星期日"; } },MON { @Override public String get() { // TODO Auto-generated method stub return "星期一"; } } ,TUE { @Override public String get() { // TODO Auto-generated method stub return "星期二"; } },WED { @Override public String get() { // TODO Auto-generated method stub return "星期三"; } },THU { @Override public String get() { // TODO Auto-generated method stub return "星期四"; } },FRI { @Override public String get() { // TODO Auto-generated method stub return "星期五"; } },STA { @Override public String get() { // TODO Auto-generated method stub return "星期六"; } }; private String name; private DayOfWeek(){ } public abstract String get(); }
2、在枚举中直接实现get()方法,使用switch,case的方式获取返回值
public enum antherdayofweek { SUN,MON,TUE,WED,THU,FRI,STA; private antherdayofweek(){ } public String get(){ switch (this.name()) { case "SUN": return "星期日"; case "MON": return "星期一"; //省略剩余五个case } return "错误的格式"; } }
四、枚举与基本数据类型
Java中基本数据类型内,有部分就是使用枚举创建在了Java底层,他们始终只存在唯一的引用地址。
例如:Integer中-128---127。由于使用频率较高,在底层创建唯一的引用地址(枚举对象),减少了运行过程中的对象创建,提高效率。
Integer a1=33; Integer b1=33; System.out.println(a1==b1);//true Integer a2=new Integer(333); Integer b2=new Integer(333); System.out.println(a2==b2);//false五、新特性
EnumMap:将枚举对象作为key,将枚举对应的值作为值。创建一个空的map集合。
EnumSet :将枚举对象作为集合内容,创建set集合。多用于对枚举中部分内容的操作。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员------入学资格-----枚举的使用
- 黑马程序员 java学习笔记——枚举
- 黑马程序员——C语言基础---结构体、枚举
- 黑马程序员_java jdk5.0新特性和枚举的学习笔记
- 黑马程序员——枚举
- 黑马程序员--.NET笔记--枚举、数组、排序、方法、变量的作用域、重载
- 黑马程序员,黑马论坛--------枚举和单例设计模式的区别
- 黑马程序员_简单类实现枚举_枚举的高级应用
- 黑马程序员-java枚举
- 黑马程序员--枚举,反射学习及其总结
- 黑马程序员--C语言中的枚举
- 黑马程序员----JAVA----枚举和反射
- 黑马程序员 java自学日记五 枚举的其中常用方法
- 黑马程序员——高新技术——枚举,JDK1.5部分新特性
- 黑马程序员--java学习之享元与枚举
- 黑马程序员——C语言学习之结构体和枚举
- 黑马程序员----枚举反射
- 黑马程序员--增强for循环与 枚举
- 黑马程序员 C语言-枚举,结构体,指针
- 黑马程序员——高新技术---eclipse使用技巧、静态导入、可变参数、增强for循环、 自动拆装箱、枚举