class Operation {
double numberA;
double numberB; public Operation() { } public double getResult() {
double result = 0;
return result;
}
}class OperationAdd extends Operation {
double numberA;
double numberB; public OperationAdd() { } public double getResult() {
double result = 0;
result = numberA + numberB;
return result;
}}class OperationSub extends Operation {
double numberA;
double numberB; public OperationSub() { } public double getResult() {
double result = 0;
result = numberA - numberB;
return result;
}
}class OperationMul extends Operation {
double numberA;
double numberB; public OperationMul() { } public double getResult() {
double result = 0;
result = numberA * numberB;
return result;
}
}class OperationDiv extends Operation {
double numberA;
double numberB; public OperationDiv() { } public double getResult() {
double result = 0;
result = numberA / numberB;
if (numberB == 0) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
}class OperationFactory {
public static Operation createOperation(char operate) {
Operation oper = null;
switch (operate) {
case '+':
oper = new OperationAdd();
break;
case '-':
oper = new OperationSub();
break;
case '*':
oper = new OperationMul();
break;
case '/':
oper = new OperationDiv();
break;
}
return oper;
}
}public class Calculator { public static void main(String[] args) {
Operation operation;
operation = OperationFactory.createOperation('+');
System.out.println(operation.getClass());
operation.numberA = 5.0;
operation.numberB = 9.0;
System.out.print("The result is " + operation.getResult());
/*OperationAdd add = new OperationAdd();
add.numberA= 1;
add.numberB= 2;
System.out.print(add.getResult());*/
}}返回结果却是0.0。求解。
double numberA;
double numberB; public Operation() { } public double getResult() {
double result = 0;
return result;
}
}class OperationAdd extends Operation {
double numberA;
double numberB; public OperationAdd() { } public double getResult() {
double result = 0;
result = numberA + numberB;
return result;
}}class OperationSub extends Operation {
double numberA;
double numberB; public OperationSub() { } public double getResult() {
double result = 0;
result = numberA - numberB;
return result;
}
}class OperationMul extends Operation {
double numberA;
double numberB; public OperationMul() { } public double getResult() {
double result = 0;
result = numberA * numberB;
return result;
}
}class OperationDiv extends Operation {
double numberA;
double numberB; public OperationDiv() { } public double getResult() {
double result = 0;
result = numberA / numberB;
if (numberB == 0) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
}class OperationFactory {
public static Operation createOperation(char operate) {
Operation oper = null;
switch (operate) {
case '+':
oper = new OperationAdd();
break;
case '-':
oper = new OperationSub();
break;
case '*':
oper = new OperationMul();
break;
case '/':
oper = new OperationDiv();
break;
}
return oper;
}
}public class Calculator { public static void main(String[] args) {
Operation operation;
operation = OperationFactory.createOperation('+');
System.out.println(operation.getClass());
operation.numberA = 5.0;
operation.numberB = 9.0;
System.out.print("The result is " + operation.getResult());
/*OperationAdd add = new OperationAdd();
add.numberA= 1;
add.numberB= 2;
System.out.print(add.getResult());*/
}}返回结果却是0.0。求解。
把子类的那两个变量统统删掉
abstract class Operation {
private double numberA;
private double numberB;
public double getNumberA() {
return numberA;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public abstract double getResult();
}class OperationAdd extends Operation {
public double getResult() {
double result = 0;
result = getNumberA() + getNumberB();
return result;
}
}
class OperationSub extends Operation {
public double getResult() {
double result = 0;
result = getNumberA() - getNumberB();
return result;
}
}
class OperationMul extends Operation {
public double getResult() {
double result = 0;
result =getNumberA()* getNumberB();
return result;
}
}
class OperationDiv extends Operation {
public double getResult() {
double result = 0;
result = getNumberA() / getNumberB();
if (getNumberB() == 0) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
}
class OperationFactory {
public static Operation createOperation(char operate) {
Operation oper = null;
switch (operate) {
case '+':
oper = new OperationAdd();
break;
case '-':
oper = new OperationSub();
break;
case '*':
oper = new OperationMul();
break;
case '/':
oper = new OperationDiv();
break;
}
return oper;
}
}public class Calculator {
public static void main(String[] args) {
Operation operation;
operation = OperationFactory.createOperation('+');
System.out.println(operation.getClass());
operation.setNumberA(5.0) ;
operation.setNumberB(9.0) ;
System.out.print("The result is " + operation.getResult());
/*OperationAdd add = new OperationAdd();
add.numberA= 1;
add.numberB= 2;
System.out.print(add.getResult());*/
}}