enum Word{A("I am the first one inthe world"),
B("we can see you "),
C("we thin k");
private String des;
private Word(String des){
this.des=des;
}
public String getDes(){return des;}
}
public class EnumClass {
/**
* enum实现了Serializable和Comparable接口不可以继承
* @param args
*/
public static void main(String[] args) {
for(Word w:Word.values()){
System.out.println(w+"ordinal"+w.ordinal());
System.out.println(w.compareTo(Word.A));
System.out.println(w.equals(Word.A));
System.out.println(w==Word.A);
System.out.println(w.getDeclaringClass());//知道所属的类
System.out.println(w.name()+" ****"+w.getDes());
System.out.println("------------------");
}
for(String s:"A B C".split(" ")){
Word word=Enum.valueOf(Word.class,s);
//是在Enum中定义的static方法,根据给定的名字返回相应的enum实例
System.out.println(word);
System.out.println(word.getDes());
}
}
}
在上面的程序中每个枚举实例能够返回对自身的描述。在此是通过提供一个构造器来专门处理这个额外的信息,然后添加一个方法返回描述的信息。另外如果定义自己的方法,那么在enum实例序列的最后添加一个分号。另外在java中必须先定义enum实例。
另外我们还可以通过覆盖toString方法来为枚举实例生成不同的字符串描述信息。
|