java枚举实现
package enumeration;
/*
* 1.5以前
*/
class Color{
private static final Color RED = new Color("红色");
private static final Color GREEN = new Color("绿色");
private static final Color BLUE = new Color("蓝色");
private String title;
private Color(String title){
this.title=title;
}
public String toString(){
return this.title;
}
public static Color getlnstance(int ch){
switch(ch){
case 0:
return RED;
case 1:
return GREEN;
case 2:
return BLUE;
default:
return null;
}
}
}
/*
* 1.5以后,枚举使用enum关键字来进行定义
*/
enum Color2{
RED,GREEN,BLUE;
}
public class enumeration_basic {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Color c = Color.getlnstance(0);
System.out.println(c.toString());
//新特性
Color2 c2 = Color2.RED;
System.out.println(c2);
// public final int ordinal();获得枚举的序号
// public final String name();获得美剧的名称
for(Color2 c3:Color2.values())
{
System.out.println(c3.ordinal()+", "+c3.name());
}
}
}<span style="color:#ff0000;">输出:红色
RED
0, RED
1, GREEN
2, BLUE</span>
java枚举的应用例子
package enumeration;
/*
*
*/
enum Sex{
MALE("男"),FEMALE("女"); //定义枚举对象(此时调用构造方法)
private String title;
private Sex(String title) //构造方法私有化
{
this.title = title;
}
public String toString()
{
return this.title;
}
}
/*
* Person 定义一个人类
*/
class Person {
private String name;
private int age;
private Sex sex;
public Person(String name,int age,Sex sex)
{
this.age = age;
this.name = name;
this.sex = sex;
}
public String toString(){
return "姓名:" + this.name +",年龄:"+ this.age +",性别:" + this.sex;
}
}
public class enumeration_using {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person per = new Person("张珊",20,Sex.FEMALE);
System.out.println(per);
}
}<span style="color:#ff0000;">输出:姓名:张珊,年龄:20,性别:女</span>
本程序利用枚举表示了一个人的性别,这样做的好处是限定了性别对象的适用范围,但是读者也可以发现,即使本程序不适用枚举也可以实现对应功能,所以对于开发而言,如果已经习惯使用枚举的可以继续使用,如果不习惯使用,就建议使用自己习惯的方法。