什么是枚举?
需要在一定的范围内取值,这个值只能是这个范围中的任意一个。
举例:交通信号灯,有三种颜色,但是每次只能亮三种颜色里面的任意一个。
枚举关键字enum
Enum Color3{
RED,GREEN,YELLOW;
}
枚举的构造方法也是私有的
枚举的使用方法示例:
package test04;
public class testEnum1 {
public static void main(String[] args) {
Color3 c3 = Color3.RED;
//得到枚举名称
String name = c3.name();
//得到枚举下标
int idx = c3.ordinal();
System.out.println(name+"\n"+idx);
}
//传统的方式
private int color;
//第二种方法
private Color2 color1;
//第三种方式,JDK5.0新特性 使用枚举
private Color3 color3;
public void test() {
this.color = Color1.RED;
this.color1 = Color2.RED;
this.color3 = Color3.GREEN;
}
}
//使用枚举实现
enum Color3{
RED,GREEN,YELLOW;
}//枚举也是底层也是私有的,只是写起来更方便
//特殊枚举
enum Color4{
RED("red"){
public void print1() {
System.out.println("red");
}
},
GREEN("green") {
@Override
public void print1() {
System.out.println("green");
}
},
YELLOW("yellow") {
@Override
public void print1() {
System.out.println("yellow");
}
}; //枚举里的构造方法
private Color4(String name) {}
//抽象方法
//当在枚举里写了抽象方法之后,需要在每个示例上面都实现抽象方法
public abstract void print1();
}
class Color2{
private Color2() {}
public static final Color2 RED = new Color2();
public static final Color2 GREEN = new Color2();
public static final Color2 YELLOW = new Color2();
}
class Color1{
public static final int RED = 1;
public static final int GREEN = 2;
public static final int YELLOW = 3;
}
特殊枚举的操作:
在枚举类里面有构造方法
在枚举类里面有抽象方法