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()); }