目标:枚举的概述和应用
枚举的作用:
枚举是一种特殊类型,主要用于做信息的标志和分类。
枚举的定义格式:
修饰符 enum 枚举类名称{
罗列枚举类的实例
}
枚举类的源代码:
Compiled from "Oritation.java"
final class Oritation extends java.lang.Enum<Oritation> {
public static final Oritation UP = new Oritation();
public static final Oritation DOWN = new Oritation();
public static final Oritation LEFT = new Oritation();
public static final Oritation RIGHT = new Oritation();
}
枚举的特点:
1.枚举类不能被继承。
2.枚举默认继承了枚举类型:java.lang.Enum
3.枚举类的第一行都是罗列枚举类的对象。他们都是常量。
4.枚举类的构造器是私有的,枚举类相当于是多例模式。
小结:
枚举用于做信息的分类和标志。
枚举类的第一行都是罗列枚举类的对象,枚举类相当于是多例模式。
enum Oritation{
UP , DOWN , LEFT , RIGHT ;
}
public class EnumDemo01 {
public static void main(String[] args) {
go(Oritation.UP);
}
// 控制玛丽的走向:
public static void go(Oritation o) {
switch (o) {
case UP:
System.out.println("控制玛丽往上飞~~~");
break;
case DOWN:
System.out.println("控制玛丽往下蹲~~~");
break;
case LEFT:
System.out.println("控制玛丽往左跑~~~");
break;
case RIGHT:
System.out.println("控制玛丽往?跑~~~");
break;
}
}
// // 常量:
// public static final int UP = 0 ;
// public static final int DOWN = 1 ;
// public static final int LEFT = 2 ;
// public static final int RIGHT = 3 ;
//
// public static void main(String[] args) {
// go(LEFT);
// }
//
// // 超级玛丽游戏。
// // 定义一个方法控制玛丽的走向。
// public static void go(int oritation){
// switch (oritation){
// case UP:
// System.out.println("控制玛丽往上飞~~~");
// break;
// case DOWN:
// System.out.println("控制玛丽往下蹲~~~");
// break;
// case LEFT:
// System.out.println("控制玛丽往左跑~~~");
// break;
// case RIGHT:
// System.out.println("控制玛丽往右跑~~~");
// break;
// }
// }
}
枚举类的定义演示:
枚举的常用API演示。
public class EnumDemo02 {
public static void main(String[] args) {
Sex s = Sex.BOY;
System.out.println(s); // BOY
// 返回枚举的全部实例对象。(拓展)
Season[] seasons = Season.values();
for(int i = 0 ; i < seasons.length ; i++) {
Season season = seasons[i];
System.out.println(season);
// -- 拿当前枚举实例的索引
System.out.println(season.ordinal());
}
}
}
// 性别
enum Sex {
GIRL , BOY ;
}
// 季节
enum Season{
SPRING , SUMMER , AUTOUM , WINTER;
}