package com.superwy.enumdemo;
public enum A {
//注意:枚举类的第一行必须是罗列的枚举对象的名字
X, Y, Z;
}
package com.superwy.enumdemo;
public enum B {
//因为枚举其实是对象,抽象方法需要重写
X(){
@Override
public void go() {
}
},Y("张三"){
@Override
public void go() {
System.out.println(getName() + "running");
}
};
private String name;
private B(){
}
B(String name) {
this.name = name;
}
//抽象方法
public abstract void go();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.superwy.enumdemo;
public class Test {
public static void main(String[] args) {
A a1 = A.X;
System.out.println(a1);
//result:X
//枚举类的构造器是私有的,不能对外创建对象
//A a = new A();
//枚举类的第一行都是常量,记住的是枚举类的对象
A a2 = A.Y;
//A3 枚举类提供一些额外的API
A[] as = A.values();
A a3 = A.valueOf("Y");
System.out.println(a3.name()); //Y
System.out.println(a3.ordinal()); //索引1
B y = B.Y;
y.go();
}
}
枚举的用途:
package com.superwy.enumdemo2;
public enum Constant2 {
Boy , Girl;
}
package com.superwy.enumdemo2;
public class Test {
public static final int Boy = 0;
public static final int girl = 1;
public static void main(String[] args) {
//目标:掌握枚举的应用场景,做信息标志和分类
check(Boy);
//因为用户有可能不会输入常量,可能乱输入
//所以采用枚举,做信息标志和分类
check1(Constant2.Girl);
}
private static void check(int sex) {
switch (sex){
case 0:
System.out.println("show beautiful girls");
break;
case 1:
System.out.println("show boys");
}
}
private static void check1(Constant2 sex) {
switch (sex){
case Boy:
System.out.println("show beautiful girls");
break;
case Girl:
System.out.println("show boys");
}
}
}