/**
- @Author: cxh
- @CreateTime: 17/12/31 17:53
- @ProjectName: JavaBaseTest
*/
public class Client {
//客户端代码
public static void main(String[] args) {
//定义一种操作
Operation ope=OperationFactory.createOperation("+");
//定义两个操作数
ope.setFirst(11);
ope.setSecond(22);
//输出计算结果
System.out.println(ope.getResult());
}
}
(2)Operation
/**
-
@Author: cxh
-
@CreateTime: 17/12/31 17:51
-
@ProjectName: JavaBaseTest
*/
public class Operation {
private int first;
private int second;
//get and set
public int getFirst() {
return first;
}
public void setFirst(int first) {
this.first = first;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
//求运算结果
public int getResult(){
return 0;
}
}
/**
-
@Author: cxh
-
@CreateTime: 17/12/31 17:57
-
@ProjectName: JavaBaseTest
*/
public class OperationAdd extends Operation {
@Override
public int getResult(){
return super.getFirst()+super.getSecond();
}
@Override
public void setFirst(int first) {
super.setFirst(first);
}
@Override
public void setSecond(int second) {
super.setSecond(second);
}
}
/**
-
@Author: cxh
-
@CreateTime: 17/12/31 18:04
-
@ProjectName: JavaBaseTest
*/
public class OperationSubs extends Operation {
@Override
public int getResult() {
return super.getFirst()-super.getSecond();
}
@Override
public void setFirst(int first) {
super.setFirst(first);
}
@Override
public void setSecond(int second) {
super.setSecond(second);
}
}
/**
-
@Author: cxh
-
@CreateTime: 17/12/31 18:16
-
@ProjectName: JavaBaseTest
*/
public class OperationMul extends Operation {
@Override
public int getResult() {
return super.getFirst()*super.getSecond();
}
@Override
public void setFirst(int first) {
super.setFirst(first);
}
@Override
public void setSecond(int second) {
super.setSecond(second);
}
}
/**
-
@Author: cxh
-
@CreateTime: 17/12/31 18:28
-
@ProjectName: JavaBaseTest
*/
public class OperationDevide extends Operation {
@Override
public int getResult() {
try{
return super.getFirst()/super.getSecond();
}catch (Exception e){
System.out.println("错误信息列表:"+e);
return -1;
}
}
@Override
public void setFirst(int first) {
super.setFirst(first);
}
@Override
public void setSecond(int second) {
super.setSecond(second);
}
}
/**
- @Author: cxh
- @CreateTime: 17/12/31 17:50
- @ProjectName: JavaBaseTest
/
public class OperationFactory {
public static Operation createOperation(String s){
switch (s){
case "+":
return new OperationAdd();
case "-":
return new OperationSubs();
case "":
return new OperationMul();
case "/":
return new OperationDevide();
}
return null;
}
}
输出结果:33
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|