Java实现简单计算器功能【简单工厂模式】

Java实现简单计算器功能【简单工厂模式】
首先创建一个包package【com.simpleFactory】,给自己的计算器开辟出一处空间来。
【说明】软件包机制:
1、 为了解决类的命名冲突问题,在类名前加命名空间(包机制)
2、 在Java中使用package语句定义包。(单包、复包)
3、 package定义的格式,通常采用公司域名倒叙方式。
例如:com.microsoft.oa.system;

以上包含义:microsoft公司开发oa项目,system是oa项目中其中一个模块

package定义的全格式:公司域名倒叙.项目名.模块名;
4、 package语句只能出现在.java源文件的第一行。
5、 完整的类名是带有包的。
6、 带有package语句的java源文件必须这样编译:
javac –d 生成路径 java源文件路径(绝对路径和相对路径)
7、 运行:
java com.microsoft.oa.system.test

【Java代码】

//Operation类:存储运算对象和得到结果的方法getResultValue()
package com.simpleFactory;
public class Operation
{
    private double numberA;
    private double numberB;
    public double getResultValue()
    {
        return 0.0;    //默认返回结果
    }
    public double getNumberA()
    {
        return numberA;
    }
    public double getNumberB()
    {
        return numberB;
    }
    public void setNumberA(double numberA)
    {
        this.numberA = numberA;
    }
    public void setNumberB(double numberB)
    {
        this.numberB = numberB;
    }
}
//Addition类:实现加法运算
package com.simpleFactory;
public class Addition extends Operation
{
    public double getResultValue()
    {
        return getNumberA() + getNumberB();
    }
}
//Subtraction类:实现减法运算
package com.simpleFactory;
public class Subtraction extends Operation
{
    public double getResultValue()
    {
        return getNumberA() - getNumberB();
    }
}
//Multiplication类:实现乘法运算
package com.simpleFactory;
public class Multiplication extends Operation
{
    public double getResultValue()
    {
        return getNumberA() * getNumberB();
    }
}
//SimpleFactory类:简单工厂类,用来实例化运算方法
package com.simpleFactory;
public class SimpleFactory
{
    private Operation operation;
    public Operation factoryOperate(String type)
    {
        switch (type)
        {
            case "+":
                operation = new Addition(); break;
            case "-":
                operation = new Subtraction(); break;
            case "*":
                operation = new Multiplication(); break;
        }

        return operation;
    }
}
//test类:实验计算器
package com.simpleFactory;
public class test
{
    public static void main(String[] args)
    {
        java.util.Scanner sc = new java.util.Scanner(System.in);
        SimpleFactory factory = new SimpleFactory();
        System.out.print("Please input a Number[A]:");
        double NumA = sc.nextDouble();
        System.out.print("Please input another Number[B]:");
        double NumB = sc.nextDouble();
        System.out.print("Please input a operation[+、-、*]:");
        String oper = sc.next();
        Operation operation = factory.factoryOperate(oper);
        operation.setNumberA(NumA);
        operation.setNumberB(NumB);
        double result = operation.getResultValue();
        System.out.print("result = " + result);
    }
}
/*
【编译】
    javac –d D:\ *.java【首先要用cd命令进入.java源文件的路径】
【运行】
    java com.simpleFactory.test
*/
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值