今天学习了java的枚举类型,通过调试程序并阅读源码,总结如下:
1>每一个枚举类型都继承自java.lang.Enum类
2>每一个枚举常量都为枚举类的内部类并且继承自枚举类
3>所以在每一个枚举常量也同时继承了Enum类,而在Enum类的构造方法中保存了枚举常量的name与ordinal信息
4>所以我认为枚举类型实际上就是一个拥有多个继承自己本身的内部类的类似于单次套娃类型的类。
调试代码如下:
public class EnumSample {
enum BetuifulGirl {LN,JJY,DDD,SXR};
public enum Calculator {
ADD ("+") {
@Override
public int calculation(int a, int b) {
return a + b;
}
},
SUBTRACT ("-") {
@Override
public int calculation(int a, int b) {
return a - b;
}
},
MULTIPLY ("*") {
@Override
public int calculation(int a, int b) {
return a * b;
}
},
DIVIDE ("/") {
@Override
public int calculation(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("divisor must not be 0");
}
return a / b;
}
};
Calculator (String calculator) {
this.calculator = calculator;
}
private String calculator;
public abstract int calculation(int a, int b);
public String getCalculator() {
return calculator;
}
}
public static void main(String[] args) {
BetuifulGirl betuifulGirl = BetuifulGirl.DDD;
Calculator calculator = Calculator.ADD;
System.out.println(calculator.calculation(1,2));
System.out.println(betuifulGirl);
}
}