Enum的例子

来源:互联网 发布:linux服务器编程 pdf 编辑:程序博客网 时间:2024/06/01 20:34

Enum 可以用于存储常量列表,也可以作单例SingleTon,其中,单例应用更是所有单例实现中的最佳实践。以下是一个例子:

public class Enum01 {public static void main(String[] args) {basicTest();//singleTon();}public static void basicTest() {Token token = Token.NAME;// enum's methodSystem.out.println("~~~basicTest~~~");System.out.println(token.name());// 只是用作常量的话,用name()就好System.out.println(Token.NAME.name());System.out.println(Token.NAME.compareTo(Token.NAME1));System.out.println(Token.values()[0].name);System.out.println(Token.valueOf("NAME1").name);// enum in switchswitch (token) {case NAME:System.out.println("NAME");break;case NAME1:System.out.println("NAME1");break;default:System.out.println("default");break;}System.out.println("~~~basicTest end~~~");}public static void singleTon() {// same instance Token token = Token.COUNTER;Token token1 = Token.COUNTER;if (token == token1) {System.out.println("same object");}token.addCounter(1);token1.addCounter(1);System.out.println(token1.counter);}// 枚举类private enum Token {// 本质是类静态常量(public static final), 所以大写NAME, NAME1("name1"), COUNTER(1);private String name;private int counter = 0;// constructor(private, initialize once)private Token() {this.name = "init_name";System.out.println("Singleton instance created.");}private Token(String name) {this.name = name;System.out.println("Singleton2 instance created.");}private Token(int counter) {this.counter += counter;System.out.println(this.counter);}// singleton一般有对应的方法而不只是定义常量private void addCounter(int counter) {this.counter += counter;System.out.println(this.counter);}}}


0 0
原创粉丝点击