枚举(enum)是指将一个集合中的所有可能的元素逐一列举出来的过程。
1. 定义
枚举是一种特殊的数据类型,用于表示一组命名的常量。这些常量通常代表相关的值或状态。
关键字:enum
2. 特征
- 命名常量:每个枚举成员都有一个唯一的名称,通常是描述性的。
- 整型值:在许多编程语言中,枚举成员通常被分配一个整数值。
- 有限性:枚举中的常量数量是有限的,可以明确列出。
public enum Color {
RED, GREEN, BLUE;
}
①不需要提供setX方法,因为枚举对象值通常为只读。
②对枚举对象/属性使用 final+static 共同修饰,实现底层优化。
③枚举对象名通常使用全部大写,常量的命名规范。
④枚举对象根据需要,也可以有多个属性。
自定义枚举类型:
①构造器私有化
②本类内部创建一组对象[四个 春夏秋冬]
③对外暴露对象(通过为对象添加 public final static 修饰符)
④可以提供get方法,但是不需要提供set
通过自定义类实现枚举可以对上面代码进行简化,如下:
如果有多个对象(常量),使用逗号隔开,放在首行
如果我们使用的是无参构造器,创建的常量对象,则可以省略()。
练习1:
代码:
public static void main(String[] args) {
//获取所有对象,即数组
Person[] values = Person.values();
for (Person v:values) {
System.out.println(v);
}
}
@SuppressWarnings("all")
enum Person{
MONDAY("星期一"),TUESDAY("星期二"),WEDNESDAY("星期三"),
THURSDAY("星期四"),FRIDAY("星期五"),SATURDAY("星期六"),SUNDAY("星期日");
private String name;
Person(String name) {
this.name = name;
}
@Override
public String toString() {
return name ;
}
}
输出结果为:
枚举练习2:
代码:
enum Color implements color{
RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),
YELLOW(255,255,0),GREEN(0,255,0);
private int redValue;
private int greenValue;
private int blueValue;
Color(int redValue, int greenValue, int blueValue) {
this.redValue = redValue;
this.greenValue = greenValue;
this.blueValue = blueValue;
}
@Override
public void show() {
System.out.println("属性值为:"+redValue+","+greenValue+","+blueValue);
}
}
interface color{
public void show();
}
实现类:
public static void main(String[] args) {
Color blue = Color.YELLOW;
blue.show();
switch (blue){
case RED:
System.out.println("匹配的红色");
break;
case YELLOW:
System.out.println("匹配的黄色");
break;
case GREEN:
System.out.println("匹配的绿色");
break;
case BLACK:
System.out.println("匹配的黑色");
break;
case BLUE:
System.out.println("匹配的蓝色");
break;
default:
System.out.println("没有匹配到");
}
}