public abstract class Element { public abstract double getValue(); }
public class Expression extends Element{ private Element e1; private Element e2; private char operator; public Expression(Element e1, Element e2, char operator) { super(); this.e1 = e1; this.e2 = e2; this.operator = operator; } @Override public double getValue() { switch(operator){ case '+':return e1.getValue()+e2.getValue(); case '-':return e1.getValue()-e2.getValue(); case '*':return e1.getValue()*e2.getValue(); case '/':return e1.getValue()/e2.getValue(); default:return 99999999999999.9; } } }
public class Number extends Element{ private double num; public Number(double num){ this.num=num; } @Override public double getValue() { return num; } }
public class Application { public static void main(String[] args) { Number n1=new Number(3); Number n2=new Number(8); Number n3=new Number(2); Number n4=new Number(9); Number n5=new Number(7); Number n6=new Number(5); Number n7=new Number(16); Expression e1=new Expression(n5,n6,'+'); Expression e2=new Expression(n4,e1,'*'); Expression e3=new Expression(n2,n3,'/'); Expression e4=new Expression(n1,e3,'+'); Expression e5=new Expression(e4,e2,'-'); Expression e6=new Expression(e5,n7,'-'); System.out.println(e6.getValue()); } }