枚举类
A:枚举概述
* 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。
* B:回想单例设计模式:单例类是一个类只有一个实例
* 那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例。这才能是枚举类。
Demo1
public static void main(String[] args) {
Week mon = Week.MON;
Week tue = Week.TUE;
}
public class Week {
public static final Week MON = new Week();
public static final Week TUE = new Week();
public static final Week WED = new Week();
private Week(){}//私有构造,不让其它类创建本类对象
}
Demo2
public static void main(String[] args) {
Week2 mon = Week2.mon;
Week2 tue = Week2.mon;
Week2 wed = Week2.mon;
System.out.println(mon.getName());
tue.getName();
wed.getName();
}
有参构造
public class Week2 {
public static final Week2 mon = new Week2("星期一");
public static final Week2 tue = new Week2("星期二");
public static final Week2 wed = new Week2("星期三");
private String name;
private Week2(String name){
this.name = name;
}
public String getName() {
return name;
}
}
Demo3
public static void main(String[] args) {
Week3 mon = Week3.mon;
mon.show();
Week3 tue = Week3.tue;
tue.show();
Week3 wed = Week3.wed;
wed.show();
}
public static final Week3 mon = new Week3("星期一"){
public void show(){
System.out.println("星期一");
}
};
public static final Week3 tue = new Week3("星期二"){//父类引用指向子类对象
public void show(){
System.out.println("星期二");
};
};
public static final Week3 wed = new Week3("星期三"){
public void show(){
System.out.println("星期三");
}
};
private String name;
private Week3(String name){
this.name = name;
}
public String getName() {
return name;
}
//编写一个抽象方法
public abstract void show();
Demo4
public enum Week {
MON("星期一"),TUE("星期二"),WED("星期三");
private String name;
private Week(String name){
this.name=name;
}
public String getName() {
return name;
}
}
public static void main(String[] args) {
Week mon = Week.MON;
Week tue = Week.TUE;
Week wed = Week.WED;
System.out.println(mon.getName());
}

浙公网安备 33010602011771号