自己实现枚举类
枚舉
枚舉概述
是指將變量的值一一列出來,變量的值只限于列舉出來的值的范圍內。舉例:一周只有7天,一年只有12個月等。
回想單例設計模式:單例類是一個類只有一個實例
那么多例類就是一個類有多個實例,但不是無限個數的實例,而是有限個數的實例。這才能是枚舉類。
package cn.learn_01;public class Direction {// 創建幾個實例public static final Direction FRONT = new Direction();public static final Direction BEHIND = new Direction();public static final Direction LEFT = new Direction();public static final Direction RIGHT = new Direction();// 構造私有,別人就不能無限的創建了private Direction() {} } package cn.learn_01;public class Direction2 {// 創建幾個實例public static final Direction2 FRONT = new Direction2("前");public static final Direction2 BEHIND = new Direction2("后");public static final Direction2 LEFT = new Direction2("左");public static final Direction2 RIGHT = new Direction2("右");// 構造私有,別人就不能無限的創建了// private Direction2() {// }// 加入成員變量,并去掉無參構造private String name;private Direction2(String name) {this.name = name;}public String getName() {return name;} } package cn.learn_01;public abstract class Direction3 {// 創建幾個實例public static final Direction3 FRONT = new Direction3("前") {@Overridepublic void show() {System.out.println("前");}};public static final Direction3 BEHIND = new Direction3("后") {@Overridepublic void show() {System.out.println("后");}};public static final Direction3 LEFT = new Direction3("左") {@Overridepublic void show() {System.out.println("左");}};public static final Direction3 RIGHT = new Direction3("右") {@Overridepublic void show() {System.out.println("右");}};// 構造私有,別人就不能無限的創建了// private Direction2() {// }// 加入成員變量,并去掉無參構造private String name;private Direction3(String name) {this.name = name;}public String getName() {return name;}// 加入抽象方法public abstract void show(); } package cn.learn_01;public abstract class Direction3 {// 創建幾個實例public static final Direction3 FRONT = new Direction3("前") {@Overridepublic void show() {System.out.println("前");}};public static final Direction3 BEHIND = new Direction3("后") {@Overridepublic void show() {System.out.println("后");}};public static final Direction3 LEFT = new Direction3("左") {@Overridepublic void show() {System.out.println("左");}};public static final Direction3 RIGHT = new Direction3("右") {@Overridepublic void show() {System.out.println("右");}};// 構造私有,別人就不能無限的創建了// private Direction2() {// }// 加入成員變量,并去掉無參構造private String name;private Direction3(String name) {this.name = name;}public String getName() {return name;}// 加入抽象方法public abstract void show(); }?
總結
- 上一篇: JDK5新特性回顾
- 下一篇: 通过enum实现枚举类