什么时候用到枚举类?-- 当取值是某个范围之一的时候,这时候可以使用枚举。
枚举怎么定义? -- 跟定义类一样,只是把class改成enum ,如 public enum Season{}
与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的
枚举值就相当于实例变量。
public enum Grade {
A("A","90-100"),B("B","89-90"),C("C","79-80"),D("D","<60");//声明了属性
private String tip;
private String desc;
private Grade(String tip,String desc){ //构造方法,私有
this.tip = tip;
this.desc = desc;
}
public String getTip() {
return tip;
}
public String getDesc() {
return desc;
}
}
枚举类与普通一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现
public enum WeekDay {
Mon{
public void show() {
System.out.println("星期1");
}
},Tue {
public void show() {
System.out.println("星期2");
}
},Wed {
public void show() {
System.out.println("星期3");
}
},Thu {
public void show() {
System.out.println("星期4");
}
};
public abstract void show();
}
public class Demo {
public static void main(String[] args) {
WeekDay w = WeekDay.Thu; //不要new WeekDay
w.show();
}
}
上面的也可以用带属性的方法实现
public enum WeekDay {
Mon("星期一"),Tue("星期二");
private String tip;
private WeekDay(String tip){
this.tip = tip;
}
public String getTip() {
return tip;
}
}
public class Demo3 {
public static void main(String[] args) {
WeekDay w = WeekDay.Mon;
System.out.println(w.getTip());
}
}
枚举怎么定义? -- 跟定义类一样,只是把class改成enum ,如 public enum Season{}
与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的
枚举值就相当于实例变量。
public enum Grade {
A("A","90-100"),B("B","89-90"),C("C","79-80"),D("D","<60");//声明了属性
private String tip;
private String desc;
private Grade(String tip,String desc){ //构造方法,私有
this.tip = tip;
this.desc = desc;
}
public String getTip() {
return tip;
}
public String getDesc() {
return desc;
}
}
枚举类与普通一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现
public enum WeekDay {
Mon{
public void show() {
System.out.println("星期1");
}
},Tue {
public void show() {
System.out.println("星期2");
}
},Wed {
public void show() {
System.out.println("星期3");
}
},Thu {
public void show() {
System.out.println("星期4");
}
};
public abstract void show();
}
public class Demo {
public static void main(String[] args) {
WeekDay w = WeekDay.Thu; //不要new WeekDay
w.show();
}
}
上面的也可以用带属性的方法实现
public enum WeekDay {
Mon("星期一"),Tue("星期二");
private String tip;
private WeekDay(String tip){
this.tip = tip;
}
public String getTip() {
return tip;
}
}
public class Demo3 {
public static void main(String[] args) {
WeekDay w = WeekDay.Mon;
System.out.println(w.getTip());
}
}