.NET 面向对象程序设计 —— 学习笔记 详细版

这篇具有很好参考价值的文章主要介绍了.NET 面向对象程序设计 —— 学习笔记 详细版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        开始考虑通过封装、继承、多态把程序的耦合度降低(传统印刷 术的问题就在于所有的字都刻在同一版面上造成耦合度太高所制),开始用设计模式使得程序更加的灵活,容易修改, 并且易于复用。

1.代码规范重构

        大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如变量命名,你的命名 就是 ABCD,变量不带有任何具体含义,这是非常不规范的;判断分支,你这样的写法,意味着每个条件都要做判断, 等于计算机做了三次无用功;数据输入有效性判断等,如果用户输入的是字符符号而不是数字怎么办?

        如果除数时, 客户输入了 0 怎么办?这些都是可以改进的地方。” “哦,说得没错,这个我以前听老师说过,可是从来没有在意过,我马上改,改完再给你看看。”

class Program 
{ 
 static void Main(string[] args) 
 { 
 try 
 { 
 Console.Write("请输入数字 A:"); 
 string strNumberA = Console.ReadLine(); 
 Console.Write("请选择运算符号(+、-、*、/):"); 
 string strOperate = Console.ReadLine(); 
 Console.Write("请输入数字 B:"); 
 string strNumberB = Console.ReadLine(); 
 string strResult = ""; 
 
 switch (strOperate) 
 { 
 case "+": 
 strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB)); 
 break; 
 case "-": 
 strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB)); 
 break; 
 case "*": 
 strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); 
 break; 
 case "/": 
 if (strNumberB != "0") 
 strResult= Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB)); 
 else 
 strResult = "除数不能为 0"; 
 break; 
 } 
 
 Console.WriteLine("结果是:" + strResult); 
 
 Console.ReadLine(); 
 
 
 } 
 catch (Exception ex) 
 { 
 Console.WriteLine("您的输入有错:" + ex.Message);  } 
 } 
} 

        大鸟:“吼吼,不错,不错,改得很快吗?至在目前代码来说,实现计算器是没有问题了,但这样写出的代码是否 合出题人的意思呢?” 小菜:“你的意思是面向对象?” 大鸟:“哈,小菜非小菜也!”

2.复制 VS 复用

        小菜:“我明白了,他说用任意一种面向对象语言实现,那意思就是要用面向对象的编程方法去实现,对吗?OK, 这个我学过,只不过当时我没想到而已。” 大鸟:“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决 的问题及具体的求解过程。

        这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号, 然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前 的需求,程序不容易维护,不容易扩展,更不容易复用。从而达不到高质量代码的要求。

        ” 小菜:“鸟哥呀,我有点糊涂了,如何才能容易维护,容易扩展,又容易复用呢,能不能具体点?” 大鸟:“比如说,我现在要求你再写一个 windows 的计算器,你现在的代码能不能复用呢?”

.NET 面向对象程序设计 —— 学习笔记 详细版,.net,c#,.net

        小菜:“那还不简单,把代码复制过去不就行了吗?改动又不大,不算麻烦。” 大鸟:“小菜看来还是小菜呀,有人说初级程序员的工作就是 Ctrl+C 和 Ctrl+V,这其实是非常不好的编码习惯, 因为当你的代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。

        越大的系统,这种方式带来的问题越 严重,编程有一原则,就是用尽可能的办法去避免重复。想想看,你写的这段代码,有哪些是和控制台无关的,而只 是和计算器有关的?”

3.业务的封装

小菜:“你的意思是分一个类出来? 哦,对的,让计算和显示分开。” 大鸟:“准确的说,就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降。只有分离开,才容易达到容易维 护或扩展。” 小菜:“让我来试试看。”文章来源地址https://www.toymoban.com/news/detail-858731.html

class Program
{
    static void Main(string[] args)
    {
        try
        {
            Console.Write("请输入数字 A:");
            string strNumberA = Console.ReadLine();
            Console.Write("请选择运算符号(+、-、*、/):");
            string strOperate = Console.ReadLine();
            Console.Write("请输入数字 B:");
            string strNumberB = Console.ReadLine();
            string strResult = "";

            strResult =
            Convert.ToString(Operation.GetResult(Convert.ToDouble(strNumberA), Convert.ToDouble(strNumberB), strOperate
            ));

            Console.WriteLine("结果是:" + strResult);

            Console.ReadLine();


        }
        catch (Exception ex)
        {
            Console.WriteLine("您的输入有错:" + ex.Message);
        }
    }
}

public class Operation
{
    public static double GetResult(double numberA, double numberB, string operate)
    {
        double result = 0d;
        switch (operate)
        {
            case "+":
          

到了这里,关于.NET 面向对象程序设计 —— 学习笔记 详细版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++面向对象程序设计-北京大学-郭炜【课程笔记(三)】

    开始课程:P7 2_2. 构造函数 课程链接:程序设计与算法(三)C++面向对象程序设计 北京大学 郭炜 课程PPT:github提供的对应课程PPT 1、成员函数的一种 名字与类名相同,可以有参数,不能有返回值(void 也不行) 作用是对对象进行初始化,如给成员变量赋初值 如果定义类时没

    2024年02月19日
    浏览(43)
  • Java学习手册——第二篇面向对象程序设计

    第一章我们已经介绍了Java语言的基础知识,也知道他能干什么了, 那我们就从他的设计思想开始入手吧。 接触一个语言之前首先要知道他的大方向,设计思想是什么样的, 这样接触起来就知道基本原理,才能事半功倍。 迪克斯特拉(E.W.dijkstra)在 1965 年 提出结构化编程,

    2024年02月12日
    浏览(58)
  • 面向对象程序设计

    【面向对象程序设计】(OOP)与【面向过程程序设计】在思维方式上存在着很大的差别。【面向过程程序设计】中,算法是第一位的,数据结构是第二位的,这就明确地表述了程序员的工作方式。首先要确定如何操作数据,然后再决定如何组织数据,以便于数据操作。而【面

    2023年04月13日
    浏览(42)
  • C++《面向对象程序设计课程设计》

    《面向对象程序设计课程设计》课程说明 适用专业:计算机科学与技术 课程周数:5周 一、根据计算机科学与技术专业人才培养方案制订。 (一)课程设计性质 课程设计是学生对课程所学知识的综合运用,它与课堂听讲、上机实验、课外练习、自学研究相辅相成,构成一个

    2024年02月08日
    浏览(50)
  • Java面向对象程序设计实验报告(实验二 面向对象基础练习)

     ✨ 作者: 命运之光  ✨  专栏:Java面向对象程序设计实验报告 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) 测试类demo2 Address类 Employee类 实验二 面向对象基础练习 实验环境: Eclipse+JDK 实验目的:

    2024年02月06日
    浏览(71)
  • Kotlin程序设计(二)面向对象

    我们在前面已经学习了Kotlin程序设计的基础篇,本章我们将继续介绍更多Kotlin特性,以及面向对象编程。 其实函数我们在一开始就在使用了: 我们程序的入口点就是 main 函数,我们只需要将我们的程序代码编写到主函数中就可以运行了,不过这个函数只是由我们来定义,而

    2024年02月01日
    浏览(50)
  • Python-基础篇-类与对象/面向对象程序设计

    “类”是物以类聚的 “类” 类 和 对象 是 面向对象编程的 两个 核心概念 类 是对一群具有 相同 特征 或者 行为 的事物的一个统称,是抽象的, 不能直接使用 特征 被称为 属性 行为 被称为 方法 类 就相当于制造飞机时的 图纸 ,是一个 模板 ,是 负责创建对象的 定义类📚

    2024年01月19日
    浏览(49)
  • 2023.5.5 面向对象程序设计实验报告

    实验项目名称:模板 1、熟练掌握函数模板和类模板的定义格式。 2、熟练运用函数模板和类模板解决实际问题。 1、复数类Complex有两个数据成员:a和b, 分别代表复数的实部和虚部,并有若干构造函数和一个重载-(减号,用于计算两个复数的距离)的成员函数。 要求设计一个

    2024年02月02日
    浏览(115)
  • 面向对象程序设计第三次bolg

    本次博客针对面向对象程序设计的课程所发的PTA作业7,8以及期末考试中的面向对象编程题的分析和总结,重点介绍课程成绩统计程序系列题目以及期末考试的编程题。 在这次作业中7-1、7-2内容和考点相同,在此我分析一下7-2Hashmap的排序这个问题。 7-2 容器-HashMap-排序 分数

    2024年02月05日
    浏览(51)
  • 面向对象程序设计 之 文件输入输出流

    石 家 庄 铁 道 大 学 实 验 报 告 课程名称 面向对象程序设计 班级   姓名   学号   实验日期 2023.5.16 评分 100   实验项目名称:输入输出流 一、实验目的 掌握文本文件和二进制文件的基本访问方法; 了解一般I/O流和文件流的关系;了解文件与文件流的关系; 了解文件系统

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包