在这篇文章中,我想与大家分享我今天学习到的有关Java中的Enums的一项很棒的功能。也就是说,枚举可以具有抽象方法,并且每个成员都需要实现它。
以下代码显示了如何声明和实现枚举的抽象方法-就像其他任何类一样:)
enum Calculator
{
ADD("+") { int calculate(int a, int b) { return a + b; }},
SUBTRACT("-") { int calculate(int a, int b) { return a - b; }},
MULTIPLY("*") { int calculate(int a, int b) { return a * b; }},
DIVIDE("/") { int calculate(int a, int b) { return a / b; }};
Calculator(String sign)
{
this.sign = sign;
}
private String sign;
abstract int calculate(int a, int b); // this is how you declare
public String getSign()
{
return sign;
}
}
我创建了以下代码片段,以向您展示此功能的示例应用:
public static void main(String[] args)
{
calculatorTest(4, 2, Calculator.ADD);
calculatorTest(4, 2, Calculator.SUBTRACT);
calculatorTest(4, 2, Calculator.MULTIPLY);
calculatorTest(4, 2, Calculator.DIVIDE);
}
static void calculatorTest(int a, int b, Calculator operation) {
System.out.println(a + " " + operation.getSign() + " " + b + " = " + operation.calculate(a, b));
}