Предполагается, что у него есть класс Processor, Expression, Sum, Number и Product. Процессор выполняет Expression, а выражение должно выполнять Sum и Product, может быть, даже число. Я не слишком уверен в этом.
Это относится к выражению класса чисел e1 = новый номер (2.0);
public Number(double operand) {
Double code = new Double(operand);
code.toString();
System.out.println("double : " + code);
return;
Это проходит нормально. Я получаю число
public class TestSOP {
public static void main(String[] args) {
Processor proc = new Processor();
Expression e1 = new Number(2.0);
Expression e2 = new Number(3.1);
Expression e3 = new Number(-5.0);
Sum s1 = new Sum(e1, e2, e3);
System.out.println("s1 - " + proc.execute(s1));
Product p1 = new Product(s1, e3);
System.out.println("s1 - " + proc.execute(s1));
// etc.
}
}
Проблема в этой строке Sum s1 = новая сумма (e1, e2, e3); сумма имеет конструктор, который должен передать выражение. После прохождения операнда я пробовал много разных способов, чтобы получить его в двойном, но все, что я получаю, это SOP. Number@566776ad. Я не уверен, что делать или пытаться в следующем Беллоу - это Sum Sum.
public class Sum implements Expression {
public Sum(Expression ...operand ) {
SOP.Number.Numbers(operand); }