* 枚举的作用: * 枚举用于做信息标志和信息分类 * 枚举类格式 * 修饰符 enum 枚举名称{ * 实例1名称,实例2名称...; * } * --第一行罗列的必须是枚举类的对象名称 * 反编译的枚举源码:(桌面创建Sex.java,把下方的枚举类格式放里面。win+R->cmd-> * cd C:\Users\shinelon\Desktop->javac Sex.java->javap Sex.class) * Compiled from "Sex.java" * public final class Sex extends java.lang.Enum<Sex> { * public static final Sex BOY = new Sex(); * public static final Sex GIRL = new GIRL(); * public static Sex[] values(); * public static Sex valueOf(java.lang.String); * static {}; * } * * 枚举类的特点: * 1,枚举类是final修饰的,不能被继承 * 2,枚举类默认继承了枚举类型:java.lang.Enum * 3,枚举类的第一行罗列的是枚举类的对象,而且是用常量储存的 * 4,所以枚举类的第一行写的都是常量名称,默认存储了枚举对象 * 5,枚举类的构造器默认是私有的 * 6,枚举类相当于多例设计模式 *
public class DemoEnum01 {
public static void main(String[] args) {
Sex boy = Sex.BOY;
System.out.println(boy);
Sex girl = Sex.GIRL;
System.out.println(girl.ordinal());//枚举对象的索引位置
}
}
//枚举类格式
enum Sex{
BOY,GIRL;
}
*常量做信息标志和分类,虽然也挺好,但入参不受控制,入参太随性无法严谨 *枚举类用于做信息标志和信息分类:优雅
//常量做信息标志和信息分类
public class DemoEnum02 {
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) {
move(LEFT);
}
public static void move(Oritation 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;
}
}
}
/枚举用于做信息标志和信息分类
enum Oritation{
UP,DOWN,LEFT,RIGHT;
}
public class DemoEnum02 {
public static void main(String[] args) {
move(Oritation.UP);
}
public static void move(Oritation 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;
}
}
}