对象简单计算器程序java
我应该创建一个程序来模拟一个非常简单的计算器
所以我被要求实现一个抽象类,它表示二进制(有两个参数)算术表达式。我还创建了4个子类——除法、加法等
然而,我需要使用这些类来
“能够表示任意表达式(即具有任意数量
术语),例如我的crswork规范引用的(5.0+8.1)*(2.0)
或((5.0+8.1)*(2.0))/12.5
之类的表达式
换句话说,我的计算器必须能够使用任何算术表达式
请帮忙
public abstract class ArithmeticExpression { // base abstract superclass
double left;
double right;
double result;
public abstract void evaluate();
public abstract void display();
}
// ------------------------------------ Addition subclassed from base class
public class Addition extends ArithmeticExpression {
public Addition(double x, double y) {
this.left = x;
this.right = y;
}
@Override
public void evaluate() {
result = left + right;
}
@Override
public void display() {
System.out.println
("The expression and result is: " + left + " + " + right + " = "
+ result);
}
}
// ------------------------------------ Subtract subclassed from base class
public class Subtract extends ArithmeticExpression {
public Subtract(double x, double y) {
this.left = x;
this.right = y;
}
@Override
public void evaluate() {
result = left - right;
}
@Override
public void display() {
System.out.println
("The expression and result is: " + left + " - " + right + " = "
+ result);
}
}
// ------------------------------------ Mulitplication subclassed from base
// class
public class Multiplication extends ArithmeticExpression {
public Multiplication(double x, double y) {
this.left = x;
this.right = y;
}
@Override
public void evaluate() {
result = left * right;
}
@Override
public void display() {
System.out.println
("The expression and result is: " + left + " * " + right + " = "
+ result);
}
}
// ------------------------------------ Division subclassed from base class
public class Division extends ArithmeticExpression {
public Division(double x, double y) {
this.left = x;
this.right = y;
}
@Override
public void evaluate() {
result = left / right;
}
@Override
public void display() {
System.out.println("The expression and result is: " + left + " / "
+ right + " = " + result);
}
}
这是我在制作评估方法返回值方面的专长。有效吗
public abstract ArithmeticExpression evaluate();
//------------------------------------ Addition subclassed from base class
public class Addition extends ArithmeticExpression {
public Addition(double x, double y) {
this.left = x;
this.right = y;
}
@Override
public ArithmeticExpression evaluate() {
result = left + right;
return this;
}
共 (0) 个答案