zoukankan      html  css  js  c++  java
  • 封装计算方法实现面向对象计算器。

     public abstract class Calculator
        {
            public double Number1 { get; set; }
            public double Number2 { get; set; }
            public abstract double Calculate();
        }
    class Add : Calculator
        {
            public Add(double n1,double n2)
            {
                this.Number1 = n1;
                this.Number2 = n2;
            }
            public override double Calculate()
            {
                return Number1 + Number2;
            }
        }
    class Sub : Calculator
        {
            public Sub(double n1,double n2 )
            {
                this.Number1 = n1;
                this.Number2 = n2;
            }
    
            public override double Calculate()
            {
    
                return Number1 - Number2;
            }
        }
    class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("第一个数");
                double Number1 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("操作符");
                string  Operate= Console.ReadLine();
                Console.WriteLine("第二个数");
                double Number2= Convert.ToDouble(Console.ReadLine());
                Calculator calculator = null;
                switch (Operate)
                {
                    case "+":
                        calculator = new Add(Number1, Number2); 
                        break;
                    case "-":
                        calculator = new Sub(Number1, Number2);
                        break;
                }
                if (calculator!=null)
                {
                    Console.WriteLine("结果是:{0}",calculator.Calculate());
                }
                else
                {
                    Console.WriteLine("没有这种操作");
                }
            }
        }

    优化:

     Calculator calculator = GetComputeObject(Operate, Number1, Number2);

     private static Calculator GetComputeObject(string perate, double number1, double number2)
            {
                Calculator result = null;
                switch (perate)
                {
                    case "+":
                        result = new Add(number1, number2);
                        break;
                    case "-":
                        result = new Sub(number1, number2);
                        break;
                }
                return result;
            }
  • 相关阅读:
    django继承User表导致的问题
    Sublime Text 3 鼠标右键快捷选项 简单且高效
    php所有版本
    windows 安装redis
    php玩弄redis基本操作
    PHP 实现文件下载
    PHP 获取客户端的真实IP
    根据标签内个数,显示隐藏《加载更多》
    ubuntu 安装nginx+php+mysql+phpadmin环境
    面试总结
  • 原文地址:https://www.cnblogs.com/zhangyuhao/p/10457573.html
Copyright © 2011-2022 走看看