Java:枚举的使用
概念
枚举类型是一个特殊类型,这个类型会有预定义好的常量集合。而定义好的变量,它的赋值操作的值都必须是这个类型里预定义中的值。
基本定义
public enum Fruits {
APPLE,ORANGE,BANANA
}
枚举的使用
- 使用枚举类型定义变量,并赋值
基本用法
Fruits fruit= Fruits.APPLE;
- switch语句的使用(JDK1.6之前的switch语句只支持int,char,enum类型)
结合switch
public void usedBySwitch(Fruits fruit) {
switch (fruit) {
case APPLE:
System.out.println("这是苹果");
break;
case ORANGE:
System.out.println("这是橘子");
break;
case BANANA:
break;
}
}
- 枚举的另一种方式的使用
其他用法
public enum Fruits {
//与简单定义不同,这里的需要加入";"来结尾。并且预定的方式有所不同。
APPLE("苹果","红色",1),ORANGE("橘子","橘色",2),BANANA("香蕉","黄色",3);
//枚举可以定义定义一些变量
private String name;
private String color;
private int index;
//可以自定义构造函数
private Fruits(String name,String color,int index){
this.name=name;
this.index=index;
this.color=color;
}
//可以有自己的方法
public static void printNameByIndex(int index) {
for(Fruits f:Fruits.values()){
if (f.index == index) {
System.out.println(f.name);
}
}
}
public static void printColorByName(Fruits name) {
for(Fruits f:Fruits.values()){
if (f.name.equals(name.name)) {
System.out.println(f.color);
}
}
}
//如同一个普通类一般可以有getter和setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
//调用
public class RunMain {
public static void main(String arg[]) {
Fruits.printNameByIndex(2);
Fruits.printNameByIndex(3);
Fruits.printNameByIndex(1);
Fruits.printColorByName(Fruits.APPLE);
}
}
还有比如可以实现接口,成为接口成员等类似于普通类的操作。
参考资料:
> 概念参考依据 orcale 中 tutorial 里的Enum Types文章
> 使用方法参考:http://www.iteye.com/topic/1116193