四个运算类:
/**
* 加法类,继承父类Operation
*
* @author maiyu
*
*/
public class NumberAdd extends Operation {
@Override
public double getResult() {
// 假如某一天公司老板要求在乘法增加一个开根号,即可只需要改动这里
// double result = Math.sqrt(getNumberA() + getNumberB());
double result = getNumberA() + getNumberB();
return result;
}
}
/**
* 减法类,继承父类Operation
*
* @author maiyu
*
*/
public class NumberSub extends Operation {
@Override
public double getResult() {
double result = getNumberA() - getNumberB();
return result;
}
}/**
* 乘法类,继承父类Operation
*
* @author maiyu
*
*/
public class NumberMul extends Operation {
@Override
public double getResult() {
double result = getNumberA() * getNumberB();
return result;
}
}
/**
* 除法类,继承父类Operation
*
* @author maiyu
*
*/
public class NumberDiv extends Operation {
@Override
public double getResult() {
double result = 0d;
if (getNumberB() != 0) {
result = getNumberA() / getNumberB();
} else {
try {
throw new Exception("除数不能为0");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// System.out.println("除数不能为0!");
// System.out.println("以下结果是错误的!");
}
return result;
}
}
客户端:Program
import java.util.Scanner;
/**
* 客户端
* @author maiyu
*
*/
public class Program {
public static void main(String[] args) {
try {
// 输入端
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字A : ");
String numberA = scanner.next();
System.out.println("请输入操作符(+,-,*,/):");
String numberOperation = scanner.next();
System.out.println("请输入数字B : ");
String numberB = scanner.next();
// 在这里调用格式工厂的方法
Operation oper;
oper = OperationFactory.createOperate(numberOperation);
oper.numberA = Double.parseDouble(numberA);
oper.numberB = Double.parseDouble(numberB);
double numberResult = oper.getResult();
// 打印结果
System.out.println("输出结果为:" + numberResult);
} catch (Exception e) {
System.out.println("您的输入有误:");
e.printStackTrace();
}
}
}输出:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23612-2.html
更新了