您的位置:首页 > 编程语言 > Java开发

java枚举类型学习

2016-03-30 18:04 267 查看
用的不多,但用的时候仅仅简单的使用,不太明白原理,今天就系统的学一下枚举。参考:java编程思想。

Update:

枚举可以当做数据字典来存储,通常只要一个字段即instance本身,toString()或者name()打印的string。

枚举的数据都是一个实例对象,比如 enum Test{A}中A就是一个对象,A的toString和name()的结果是“A”。而如果一个字符串为"A",可以转为对应的枚举实例:Test.valueOf("A")

1.简单创建

枚举就是一个固定的集合,内容是声明的类。

package com.test.java.tenum;

import java.text.DateFormat;
import java.util.Date;

/**
* Created by Administrator on 2016/3/31.
*/
public enum ConstantspecificMethod {
DATE_TIME{
String getInfo(){
return DateFormat.getDateInstance().format(new Date());
}
},
CLASSPATH{
String getInfo(){
return System.getenv("CLASSPATH");
}
},
VERSION{
String getInfo(){
return System.getProperty("java.version");
}
};
abstract String getInfo();

public static void main(String[] args) {
for (ConstantspecificMethod csm : values()) {
System.out.println(csm.getInfo());
}
}
}


View Code
通过相应的enum实例,我们可以调用其上的方法。这通常也成为表驱动的代码(table-driven code),请注意它与前面提到的命令模式的相似之处。

在面向对象的程序设计中,不同的行为与不同的类关联。而通过常量相关的方法,每个enum实例可以具备自己独特的行为,这似乎说明每个enum实例就是一个特殊的类。我们并不能真的将enum实例当做一个类来使用。

与使用匿名内部类相比较,定义常量相关方法的语法更高效和简洁,下面是一个有趣的洗车的例子:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: