枚举概述:
是指将变量的值一 一列出来,变量的值只限于列举出来的范围内。举例:一周只有7天,一年只有12个月等。
单例模式一个类只有一个实例,那么多例模式就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例,这才能是枚举类。
public abstract class Week {
/*
* public static final Week MON = new Week("星期一")会报错
* 因为abstract类不能被初始化
* 用匿名内部类解决abstract不能初始化的问题
* new Week("星期一"){...};相当于新建一个对象继承了抽象类Week
*/
public static final Week MON = new Week("星期一"){
@Override
void show() {
System.out.println("星期一");
}
};
public static final Week TUE = new Week("星期二"){
@Override
void show() {
System.out.println("星期二");
}
};
public static final Week WED = new Week("星期三"){
@Override
void show() {
System.out.println("星期三");
}
};
private String name;
private Week(String name){
this.name = name;
} //私有构造,不让其他类创建本类对象
public String getName() {
return name;
}
abstract void show();
}
public class TestWeek {
public static void main(String[] args) {
Week mon = Week.MON;
//编译看左边,Week中有show方法,运行看右边,执行的是子类中的方法
mon.show();
}
}