Java:利用工厂模式设计加减乘除功能的计算器

使用简单工厂模式开发一个包含加减乘除功能的计算器。

思路如下:

1、构造一个计算器抽象类;属性:含有两个参与计算的数字;方法:获取返回计算结果。

2、创建加法、减法、乘法、除法功能子类,继承计算器,在子类中实现父类方法,在方法中计算后并返回计算结果。

3、写一个测试类里面包含如下:(1)获取运算符,根据运算符确定需要生成的计算器类型。(2)获取运算数字,使用Scanner在键盘获取运算参数。(4)根据获取到的键盘输入结果给计算器参与运算的参数赋值。(5)输出计算结果并打印。

很简单的一个小程序,大家一起来康康源代码吧~

计算器抽象类:

public abstract class Calcuator {
    private Double a;
    private Double b;

    public Double getA() {
        return a;
    }

    public void setA(Double a) {
        this.a = a;
    }

    public Double getB() {
        return b;
    }

    public void setB(Double b) {
        this.b = b;
    }

    public abstract double getResult();
}

 

加法子类:

public class Add extends Calcuator{

    @Override
    public double getResult() {

        return getA()+getB();
    }
}

 

减法子类:

public class Sub extends Calcuator{

    @Override
    public double getResult() {
        return getA()-getB();
    }
}

乘法子类:

public class Mul extends Calcuator {

    @Override
    public double getResult() {
        return getA()*getB();
    }
}

除法子类:

public class Div extends Calcuator{

    @Override
    public double getResult() {
        return getA()/getB();
    }
}

计算器测试主函数:

public class CalcuatorDemo {
    public static void main(String[] args) {
        System.out.println("请选择运算符:1、加法,2、减法,3、乘法,4、除法;");
        Scanner scanner = new Scanner(System.in);
        int operator=scanner.nextInt();
        System.out.println("请输入第一个数字");
        Double a= scanner.nextDouble();
        System.out.println("请输入第二个数字");
        Double b=scanner.nextDouble();

        Calcuator calcuator=null;
        switch (operator){
            case 1:
                calcuator=new Add();
                break;
            case 2:
                calcuator=new Sub();
                break;
            case 3:
                calcuator=new Mul();
                break;
            case 4:
                calcuator=new Div();
                break;
        }
        calcuator.setA(a);
        calcuator.setB(b);
        System.out.println("计算结果是:"+calcuator.getResult());
    }

}

程序运行截图:

这个程序很简单,同时很具有代表性,大家感兴趣的可以写一写,感谢大家支持,河子也是正在学习Java的一名学生,欢迎大家一起交流,最近有时间我会继续更新~

 

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值