有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

对象简单计算器程序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) 个答案