设为首页 加入收藏

TOP

封装计算方法实现面向对象计算器。
2019-09-17 18:13:30 】 浏览:19
Tags:封装 计算 方法 实现 面向 对象 计算器
 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;
        }

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇UDP实现一个简易的聊天室(多个主.. 下一篇C#委托和事件的使用的意义

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目