博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java从零开始学十七(简单工厂)
阅读量:6081 次
发布时间:2019-06-20

本文共 3071 字,大约阅读时间需要 10 分钟。

简单工厂的实现

实现一个计算器:要求输入2个数,和运算符,得到结果

Operation类

package com.pb.demo1;public class Operation {    private double num1;    private double num2;        public double getResult(double num1,double num2){        double result=0;        return result;    }    public double getNum1() {        return num1;    }    public void setNum1(double num1) {        this.num1 = num1;    }    public double getNum2() {        return num2;    }    public void setNum2(double num2) {        this.num2 = num2;    }    }

加,减,乖,除,取模

package com.pb.demo1;/* * 加法 */public class AddOperation extends Operation {    @Override    public double getResult(double num1, double num2) {                return (num1+num2);    }}
package com.pb.demo1;/* * 减法 */public class Substruction extends Operation {    @Override    public double getResult(double num1, double num2) {            return (num1-num2);    }    }
package com.pb.demo1;/* * 乖法 */public class Multiplication extends Operation {    @Override    public double getResult(double num1, double num2) {                return (num1*num2);    }    }
package com.pb.demo1;/* * 除法 */public class Division extends Operation {    @Override    public double getResult(double num1, double num2) {                return (num1/num2);    }    }
package com.pb.demo1;/* * 取余 */public class ModeOperation extends Operation {    @Override    public double getResult(double num1, double num2) {                return (num1%num2);    }    }

工厂类:

package com.pb.demo1;/* * 简单工厂类 */public class Factory {   //返回类型 为类对象    public Operation getResult(String op){        Operation operation=null;        //根据操作符来声明对象并返回        switch (op){        case "+":            operation=new AddOperation();            break;        case "-":            operation=new Substruction();            break;        case "*":            operation=new Multiplication();            break;        case "/":            operation=new Division();;            break;        case "%":            operation=new ModeOperation();            break;            default:                System.err.println("输入运算符不正确!");                break;        }        //返回生成的对象        return operation;    }}

测试类:

package com.pb.demo1;import java.util.InputMismatchException;import java.util.Scanner;/* * 计算器 */public class Demo1 {    public static void main(String[] args) {        //声明扫描器类型变量        Scanner  input =new Scanner(System.in);        //声明工厂对象        Factory fac=new Factory();    try{        System.out.println("请输入第一个整数:");        double num1=input.nextDouble();        System.out.println("请输入第二个整数:");        double num2=input.nextDouble();        System.out.println("请输运算符:+、-、*、/、%");        String op=input.next();        //接收工厂的返回对象 工厂根据操作符生成的对象        Operation operation=fac.getResult(op);        //接收计算结果            double result=operation.getResult(num1, num2);            //显示计算结果            System.out.println(num1+"与"+num2+"的运行结果:"+result);    }catch(InputMismatchException e){        System.err.println("输入类型不正确!");        }catch(Exception e){        e.printStackTrace();    }    }}

转载地址:http://egqgx.baihongyu.com/

你可能感兴趣的文章
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
Gallery循环滑动
查看>>
Sql与C#中日期格式转换总结
查看>>
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>
WPF 降低.net framework到4.0
查看>>
数据管理DMS 全量SQL诊断:你的SQL是健康的蓝色,还是危险的红色?
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>