您的位置:首页 > 职场人生

黑马程序员——枚举

2014-03-17 03:33 134 查看
----------------------
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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: