- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北大青鸟华美官网:
public? enum?Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
enum很像特殊的class,实际上enum声明定义的类型就是一个类
这些类都是库类中Enum类的子类( Java.lang.EnumE),他们继承了Enum中许多有用的方法
枚举值都是public static final的,也就是常量,因此,枚举类中的枚举值应全部大写
枚举类型是class,在 枚举类型中有构造器,方法和字段。但枚举的构造器有很大的不同:
1.构造器只是在构造枚举值的时候被调用
2.构造器私有 private,不允许有public构造器
3.枚举可以在switch语句中使用
枚举特点
1.用enum定义枚举类默认继承了Java.lang.Enum类而不是继承了Object类。其中java.lang.Enum类实现了java.lang.Serializable和 java.lang.Comparable两个接口
2.枚举类的构造函数只能使用private访问修饰符,如果省略了其构造器的访问控制符,则默认使用private修饰;
3.枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无需程序员显式添加。
代码如下:
public enum Week {
MON{
public String toLocaleString{
return 星期一;
}
},TUES{
public String toLocaleString{
return 星期二;
}
},WEB{
public String toLocaleString{
return 星期三;
}
},THUR{
public String toLocaleString{
return 星期四;
}
}, FRI{
public String toLocaleString{
return 星期五;
}
},SAT{
public String toLocaleString{
return 星期六;
}
},SUN{
public String toLocaleString{
return 星期日;
}
};
public abstract String toLocaleString;
}
枚举的遍历
代码如下:
public class EnumTest {
public static? void?main(String args){
for(Week w:Week.values){
System.out.println(w);
}
}
}
枚举的常用方法
int compareTo方法
String name返回枚举实例的名称
int ordinal返回枚举值在枚举中的索引
String toString返回枚举的实例名称比name更常用
public static valueOf
代码如下:
public class EnumTest {
public static void main(String args){
Week day =Week.FRI;
System.out.println(day);//FRI
System.out.println();// FRI
System.out.println(day.ordinal);//4
System.out.println(Week.valueOf(SUN).toLocaleString);//星期日
System.out.println(Week.values.length);//7获取枚举长度
}
}
枚举的构造函数
代码如下:
public enum Gender {
MALE(男), FEMALE(女);
private String name;
private Gender(String name){
=name;
}
public String getName{
return ;
}
public String toString{
String name = null;
switch(this){
case? MALE:
name=男;
break;
case? FEMALE:
name=女;
break;
}
return name;
}
}
枚举的综合应用示例:交通灯
代码如下:
public? enum? Lamp?{
/*每个枚举元素各表示一个方向的控制灯*/
S2N(N2S,S2W, false),S2W(N2E,E2W,false),E2W(W2E,E2S,false),E2S(W2N,S2N,false),
/*下面
文档评论(0)