各位大牛,我想实现这么一种功能,就是把四则运算符用变量保存起来。使用的时候用变量代替相应的运算符,举个例子就是把+赋值给变量a,使用的时候1 a 2即可实现等于3,如何实现这种运算?
可以,使用接口可以实现
interface MyOpt
{
int calc(int a, int b);
}
class Add implements MyOpt
{
public int calc(int a, int b) { return a + b; }
}
class Sub implements MyOpt
{
public int calc(int a, int b) { return a - b; }
}
使用
MyOpt a = new Add();
int c = a.calc(1, 2);
MyOpt a = new Sub();
int d = a.calc(1, 2);
这里的a就相当于运算符。
MyOpt a = new Sub();
->
a = new Sub(); // 把a从+改为-
你可以写一个工厂方法
MyOpt getOperator(char c)
{
if (c == '+') return new Add();
if (c == '-') return new Sub();
...
throw new Exception("invalid character");
}
这样就可以写
MyOpt a = getOperator('+');
可以用case语句,映射你的输入到对应的操作 。