打字猴:1.700474023e+09
1700474023 代码清单27-1 抽象表达式类
1700474024
1700474025 public abstract class Expression{
1700474026
1700474027 //解析公式和数值,其中var中的key值是是公式中的参数,value值是具体的数字
1700474028
1700474029 public abstract int interpreter(HashMap<String,Integer>var);
1700474030
1700474031 }
1700474032
1700474033 抽象类非常简单,仅一个方法interpreter负责对传递进来的参数和值进行解析和匹配,其中输入参数为HashMap类型,key值为模型中的参数,如a、b、c等,value为运算时取得的具体数字。
1700474034
1700474035 变量解析器如代码清单27-2所示。
1700474036
1700474037 代码清单27-2 变量解析器
1700474038
1700474039 public class VarExpression extends Expression{
1700474040
1700474041 private String key;
1700474042
1700474043 public VarExpression(String_key){
1700474044
1700474045 this.key=_key;
1700474046
1700474047 }
1700474048
1700474049 //从map中取之
1700474050
1700474051 public int interpreter(HashMap<String,Integer>var){
1700474052
1700474053 return var.get(this.key);
1700474054
1700474055 }
1700474056
1700474057 }
1700474058
1700474059 抽象运算符号解析器如代码清单27-3所示。
1700474060
1700474061 代码清单27-3 抽象运算符号解析器
1700474062
1700474063 public abstract class SymbolExpression extends Expression{
1700474064
1700474065 protected Expression left;
1700474066
1700474067 protected Expression right;
1700474068
1700474069 //所有的解析公式都应只关心自己左右两个表达式的结果
1700474070
1700474071 public SymbolExpression(Expression_left,Expression_right){
1700474072
[ 上一页 ]  [ :1.700474023e+09 ]  [ 下一页 ]