您的位置:首页 > 其它

Enum 枚举类型

2011-01-17 18:04 337 查看
定义一个枚举类

package enumTest;
/*
*  枚举类型是和class interface 一样的, 默认继承了Enum类
*/
public enum Person {

//public static final
//这是枚举的实例. 有且只有这几个实例. 不能再创建实例构造方法是private的
zhangShan, liSi(26), wangWu(35), zhugx;

int age;

private Person(){
System.out.println("** This is the Person construtor .");
}

private Person(int age){
this.age = age;
System.out.println("** set age");
}

public void say(){
if(age != 0){
System.out.println("My age is " + this.age);
}else{
System.out.println("--hello---");
}
}

public int getAge(){
return this.age;
}
}


使用枚举类型

package enumTest;

public class Test {
public static void main(String[] args) {

// 首先会先生成4个实例对象, 调用构造方法
Person a = Person.liSi;

System.out.println();

switch(a){
case wangWu:
System.out.println("wangWu is coming."); break;
case liSi:
System.out.println("liSi is coming."); break;
case zhangShan:
System.out.println("zhangShan is coming."); break;
}

// 获取实例属性
System.out.println(a.getAge());

// 调用实例方法
a.say();

System.out.println();
// 调用Enum继承过来的方法
System.out.println("Enum: "+ a.ordinal());
System.out.println("Enum: "+a.name());
Person[] persons = Person.values();
for(Person p: persons){
System.out.println(p.toString());
}

}
}


输出

** This is the Person construtor .
** set age
** set age
** This is the Person construtor .

liSi is coming.
26
My age is 26

Enum: 1
Enum: liSi
zhangShan
liSi
wangWu
zhugx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: