1.什么是枚举类?
在某些情况下,一个类的对象是有限而且固定的,比如说季节类,性别类,这种实例有限而且固定的类,在java中称为枚举类
2.如何使用枚举类?
枚举类也是一种类,只是它是一种比较特殊的类,因此它一样可以定义成员变量,方法和构造器。
举个栗子:
/**
* 在某些情况下,一个类的对象是有限而固定的。比如季节类。只有四个对象,或者性别类,这种实例有限而且固定的类,在java中被称为枚举类
* 创建枚举类
*
*
* */
public enum Gender implements IGenderTest {
/**
* 类体部分
* */
MALE("男"){
@Override
public void info() {
System.out.println("这个枚举值代表男性");
}
}
, FEMALE("女"){
@Override
public void info() {
System.out.println("这个枚举值代表女性");
}
};
private final String name;
private Gender(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
public interface IGenderTest {
void info();
}
public class GenderTest {
public static void main(String[]args){
Gender g=Gender.valueOf("FEMALE");
System.out.println(g.getName());
Gender g2=Gender.valueOf("MALE");
System.out.println(g2.getName());
}
}
*根据上述程序,枚举类中可以使用构造器和接口
使用枚举类实现简单计算器逻辑(使用抽象类)
public enum Operation {
PLUS {
public double eval(double x, double y) {
return x + y;
}
},
MINUS {
public double eval(double x, double y) {
return x - y;
}
},
TIMES {
public double eval(double x, double y) {
return x * y;
}
},
DIVIDE {
public double eval(double x, double y) {
return x / y;
}
};
/**
* 定义抽象方法
* */
public abstract double eval(double x,double y);
public static void main(String[]args){
System.out.println(Operation.PLUS.eval(4,4));
System.out.println(Operation.MINUS.eval(4,4));
System.out.println(Operation.TIMES.eval(4,4));
System.out.println(Operation.DIVIDE.eval(4,4));
}
}