目录
1.关键字:enum
enum也是关键字。所以enum的级别与class是一致。
例如:public enum e1(){ }
2. 什么是枚举?
枚举也是一种特殊的数据类型。
枚举也是一种特殊的类。就是一个有固定实例数量的类。
例如:计算机三原色RGB。交通信号灯颜色。季节。月份。
2.1 枚举的定义格式
public enum RGB {
RED,GREEN,BLUE;
}
定义一个枚举类型:RGB。在这个类型中,有三个实例:RED,GREEN,BLUE;
2.2 枚举使用的格式
枚举中每一个值,都是枚举的一个实例。
public static void main(String[] args) {
RGB rgb1 = RGB.RED;
RGB rgb2 = RGB.BLUE;
RGB rgb3 = RGB.GREEN;
}
2.3 枚举本质上就是一个Java类
枚举在JDK5才加入,在JDK5之前,我们都是使用Java类的方式实现枚举的要求。JDK5之
前,一个类只有三个实例的标准写法。
public class RGBClass {
public final static RGBClass R = new RGBClass();
public final static RGBClass G = new RGBClass();
public final static RGBClass B = new RGBClass();
private RGBClass () {
}
}
在这个代码的基础上。我们把固定的代码删掉,会得到什么枚举类型。
public class RGBClass {
R;
G;
B;
}
2.4 如何使用枚举类型
2.4.1 枚举一般配合switch一起使用
RGB rgb ;
switch (rgb1){
case RED:
System.out.println("red");
break;
case BLUE:
System.out.println("blue");
break;
case GREEN:
System.out.println("green");
break;
}
2.4.2 当一个方法的参数是一个枚举类型时
例如:一个公司只有7个部门。用什么类型来表示这7个部门。
① 使用编号:int:分别表示1-7。
编写方法时的参数就是int: public void print(int i){}
int数据类型合法的取值范围要比1-7大。
业务规范要求1-7的取值。但是语法要求合法的int类型太多了。
② 使用枚举。使用一个有7个实例的枚举。
编写方法时,参数是枚举类型。 public void print(WEEK week){}
当WEEK做为参数时,合法的取值有7个。WEEK.monday;等等。
2.5 枚举可以有属性和方法
枚举就是一个Java类。
public enum RGB {
RED,GREEN,BLUE;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public enum Test {
public static void main(String[] args){
RGB.RED.setName(“红色”);
System.out.println(RGB.RED);
}
}
2.6 枚举中可以有构造方法
public class RGBClass {
private String name;
// public final static RGBClass R = new RGBClass("红");
// public final static RGBClass G = new RGBClass("绿");
// public final static RGBClass B = new RGBClass("蓝");
R ("红");
G ("绿");
B ("蓝");
public RGBClass(String name) {
this.name = name;
}
按格式转换:枚举应该如下:
public enum RGB {
RED("红"),
GREEN("绿"),
BLUE("蓝");
private String name;
RGB(String name) {
this.name = name;
}