博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装计算方法实现面向对象计算器。
阅读量:4964 次
发布时间:2019-06-12

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

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;        }

 

转载于:https://www.cnblogs.com/zhangyuhao/p/10457573.html

你可能感兴趣的文章
delphi 调用Webservice 引入wsdl 报错 document empty
查看>>
面向对象之多态
查看>>
博客园
查看>>
LeetCode--111--最长公共前缀
查看>>
INTERSECT Y EXCEPT
查看>>
《Python基础篇》之初识Python一
查看>>
时间戳格式化
查看>>
智能指针shared_ptr的用法
查看>>
[导入]Castle ActiveRecord学习记录 - 处理继承关系
查看>>
CSS3创建圆圈进度条
查看>>
前端学习笔记(zepto或jquery)——对li标签的相关操作(一)
查看>>
MongoDB的下载与安装
查看>>
/sbin/ifenslave bond0 eth0 eth1
查看>>
Bootstrap Alert 使用
查看>>
Linux 使用 su 切换用户提示 Authentication Failure 的解决方法
查看>>
iOS视频边下边播--缓存播放数据流
查看>>
汉诺塔游戏的递归解析
查看>>
业务用例论文答辩
查看>>
加减乘除
查看>>
BP神经网络模型与学习算法
查看>>