什么是枚举?
** 需要在一定的范围内取值,这个值只能是这个范围内中的任意一个。
** 现实场景:交通信号灯,有三种颜色,但是每次只能亮三种颜色里面的任意一个
* 使用一个关键字
enum
**
enum
Color3 {
RED,GREEN,YELLOW;
}
* 枚举的构造方法也是私有的
* 特殊枚举的操作(了解)
** 在枚举类里面有构造方法
** 构造方法里面有参数,需要在每个实例上面都写参数
** 在枚举类里面有抽象方法
** 在枚举的每个实例里面都重写这个抽象方法
9、枚举的api的操作
** name() :返回枚举的名称
** ordinal() :枚举的下标,下标从0开始
** valueOf(Class<T> enumType, String name) :得到枚举的对象
** 还有两个方法,都是这两个方法不在api里面,编译的时候生成两个方法
*** valueof(String name) 转换枚举对象
*** values() 获得所有枚举对象数组
* 练习:枚举对象、枚举对象下标、枚举对象名称表示之间的转换
-
@Test
public
void
test1() {
Color100 c100 = Color100.RED;
String name = c100.name();
int
idx = c100.ordinal();
System.
out
.println(name+
" "
+idx);
}
-
@Test
public
void
test2() {
String name1 =
"GREEN"
;
Color100 c1 = Color100.valueOf(name1);
int
idx1 = c1.ordinal();
System.
out
.println(idx1);
}
-
@Test
public
void
test3() {
int
idx2 = 2;
Color100[] cs = Color100.values();
Color100 c12 = cs[idx2];
String name = c12.name();
System.
out
.println(name);
}
10、静态导入(了解)
* 可以在代码里面,直接使用静态导入方式,导入静态方法或者常量
* import
static
XX.XX.xxx
* import
static
java.lang.System.
out
;
import
static
java.util.Arrays.sort;
** 比如现在实现一个计算器 在Math类里面