------- android培训、java培训、期待与您交流! ----------
枚举:
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器会报错。
枚举可以让编译器在编译时就可以控制程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
枚举只有一个成员时,可以作为单例的实现方式。
枚举的常用方法:
int compareTo(E o):比较枚举与指定对象的顺序。
boolean equals(Object other):比较指定的对象是否等于此枚举常量
String name():返回此枚举常量的名称,在其枚举声明中对其进行声明。
int ordinal():返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString():返回枚举常量的名称,它包含在声明中
枚举值:枚举值是一个常量,也可以称作枚举常量,通过javap命令可以看到,每个枚举值的修饰符是 public final static ,系统会自动添加这些修饰符。
成员变量:枚举中也有成员变量。
构造方法:枚举中也有一个无参的默认的构造方法,因为对应的枚举常量的数量是在限定范围内,不能再创建其他对应的枚举常量,所有构造方法是私有化的。一旦创建了有参的构造方法,无参的构造方法也就会消失。
一般方法:可以有一般方法,每个枚举值可调用。
抽象方法:枚举中可以存在抽象方法。一旦有抽象方法,每个枚举值必须要覆写这个抽象方法,格式类似于匿名内部类的写法.
枚举值(){
被覆写的抽象方法(){ }
}
枚举的用法:
1.常量
public enum day{
SUN,MON,TUE,WED,THI,FRI,SAT
}
2.带有方法的枚举
构造方法:
package ny;
public class EnumExam {
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekday=WeekDay.SUN;
System.out.println(weekday.day);
System.out.println(weekday.week);
}
public enum WeekDay{
SUN("星期天",0);
private int day;
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
private String week;
//带有两个参数的构造方法
private WeekDay(String week,int day){
this.week = week;
this.day =day;
}
}
}
普通方法:
package ny;
public class EnumExam {
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekday= WeekDay.SUN;
WeekDay.weekday(weekday);
WeekDay weekday2= WeekDay.FRI;
WeekDay.weekday(weekday2);
}
public enum WeekDay{
SUN,MON,TUE,WED,THI,FRI,SAT;
//普通方法
public static void weekday(WeekDay weekday){
switch(weekday){
case SUN:System.out.println(WeekDay.SUN);
break;
case MON:System.out.println(WeekDay.MON);
break;
case TUE:System.out.println(WeekDay.TUE);
break;
case WED:System.out.println(WeekDay.WED);
break;
case THI:System.out.println(WeekDay.THI);
break;
case FRI:System.out.println(WeekDay.FRI);
break;
case SAT:System.out.println(WeekDay.SAT);
}
}
}
}
抽象方法
package ny;
public class EnumExam {
public static void main(String[] args) {
// TODO Auto-generated method stub
Light light = Light.GREEN;
System.out.println(light.nextLight());
System.out.println(light.getTime());
}
public enum Light{
RED(30) {
@Override
public Light nextLight() {
// TODO Auto-generated method stub
return GREEN;
}
},GREEN(35) {
@Override
public Light nextLight() {
// TODO Auto-generated method stub
return YELLOW;
}
},YELLOW(5) {
@Override
public Light nextLight() {
// TODO Auto-generated method stub
return RED;
}
};
//定义抽象方法
public abstract Light nextLight();
private int time;
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
//构造方法带有int类型一个参数
private Light(int time){
this.time = time;
}
}
}
本文详细介绍了Java枚举的定义及用途,包括枚举值、成员变量、构造方法、普通方法和抽象方法等内容,并通过实例展示了如何使用枚举。
2778

被折叠的 条评论
为什么被折叠?



