java枚举
package frank;
import java.lang.*;
public class App
{
public static void main(String[] args)
{
App a = new App();
a.println(AppEnum.SPRING);
System.out.println(AppEnum.SUMMER.ordinal());
a.println(AppEnum.valueOf(AppEnum.class,"SUMMER"));
for(AppEnum item : AppEnum.values())//遍历枚举
{
System.out.println(item);
}
AppEnum ae = AppEnum.valueOf(AppEnum.class,"SPRING");
ae.setName("男");
AppEnum at = AppEnum.SPRING;//自动调用相应常量的构造方法
System.out.println(AppEnum.SPRING.getName());
AppEnum.SPRING.get();//调用枚举里面对应实例的方法
}
public void println(AppEnum ae)
{
switch(ae)
{
case SPRING:
{
System.out.println("春天");
}
break;
case SUMMER:
{
System.out.println("夏天");
}
break;
default:
{
System.out.println("火星来的!");
}
break;
}
}
}
/**
枚举的练习,枚举是特殊的类,如果用public修饰那么枚举名必须跟类名一样。
枚举里面的实例默认都是public static final修饰的,自己不能添加。
*/
enum AppEnum
{
SPRING("男")//定义一个构造方法
{
public void get()
{
System.out.println("娜娜");
}
},
SUMMER("女")
{
public void get()
{
System.out.println("娜娜2");
}
},
FALL("人妖")
{
public void get()
{
System.out.println("娜娜3");
}
},
WINTER("未知")
{
public void get()
{
System.out.println("娜娜4");
}
};
private String name;//枚举里面定义一个变量
public void setName(String name)//定义一个方法
{
switch(this)
{
case SPRING:
if(name.equals("男"))
{
this.name = name;
}
else
{
System.out.println("参数填写错误!");
}
break;
case SUMMER:
if(name.equals("女"))
{
this.name = name;
}
else
{
System.out.println("参数填写错误!");
}
break;
default:
break;
}
}
public String getName()
{
return this.name;
}
private AppEnum(String name)//只能指定为private
{
this.name = name;
}
public abstract void get();//定义一个抽象方法,然后让每个常量去实现
}
java里面枚举可以继承一个或多个接口,里面可以定义字段、方法、构造方法(只能是private的,默认也是私有的)、也可以定义抽象方法。
浙公网安备 33010602011771号