C#之面向对象

简介:         话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是晏众文武,在酒席间,曹操诗兴大发,不觉吟道:“喝酒唱歌,人生真爽”,众文武其呼:“丞相好诗!”于是一臣子速命印刷工匠刻版印刷,以便流传天下。

        话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是晏众文武,在酒席间,曹操诗兴大发,不觉吟道:“喝酒唱歌,人生真爽”,众文武其呼:“丞相好诗!”于是一臣子速命印刷工匠刻版印刷,以便流传天下。样本出来给曹操一看,曹操感觉不妥,说道:“喝与唱,此话过俗,应改为‘对酒当歌’较好!”,于是此臣就命工匠重新来过,工匠眼看连夜刻版之工,彻底白费,心中郁闷,只得照办。样本再次出来请曹操过目,曹操细细一品,觉得还是不好,说:“人生真爽太过直接,应改问语才够意境,因此应改为‘对酒当歌,人生几何?’”当臣转告工匠之时,工匠吐血身亡!可惜三国时期活字印刷术还未发明,所以类似事情是有发生,如果有了活字印刷,则只需更改个别字即可,实在妙哉。

        所以说,四大发明之活字印刷是面向对象的胜利,世界上的万事万物都是有联系的,活字印刷是如何和我们的面向对象进行完美结合的呢?第一,要改,只需更改要改之字,此为可维护;第二,这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此乃可复用;第三,此诗若要加字,只需另刻字加入即可,这是可扩展;第四,字的排版其实有可能是竖排也有可能是横排,此时只需将活字移动就可做到满足排列需求,此为灵活性。但是在活字印刷术之前,上面的四种特性都无法满足,要修改,必须重刻,要加字,必须重刻,要重新排列,必须重刻,印完这本书后,此版已无任何可在利用的价值。

        由上述故事,想到在敲学生管理系统和机房收费系统的时候,为实现某个功能的时候,我们的直觉是用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程,这个其实是用计算机的方式去思考问题,比如说机房收费系统中,上机这个小功能,逻辑思维如下所示:

       

      根据我们的逻辑思维进行相应判断,得到我们想要实现的上机这个小功能,这个过程本身没有错,但是这样的思维却使得我们的程序只为满足当前的需求,缺少灵魂,这样的软件做出来是不规范的,不易维护的,不易扩展的,以及不易复用的。那么面向对象到底是什么?有着怎样神奇的面孔,接下来,我们翻开崭新的一页:

       面向对象的知识,前面的博文中有相关介绍,再此不在一一赘述,总的来说面向对象的主要优点以及与面向过程有着那些不一样的地方,如下:

       

     面向对象程序设计中有两个重要概念,Class和Object,以及OMT和面向对象的三个基本特征,具体介绍如下:

      

      对面向对象有了一些基本的掌握,以及类和对象的把控,我们来深入了解C#中的类,类是一种自定义的数据类型,就像整型和字符型,可以使用类来声明变量,用类声明的变量称之为引用变量,所以,类是引用型数据类型,C#提供了创建了类和对象的功能,用C#编程时,要做的主要工作就是定义组成程序各种类,类定义可以作为一个模板或蓝图,封装了她的对象的数据和行为,一旦类定义好了,就可以以她作为模板来创建类的对象和实例,那么,接下来,我们以C#视频中的一个例子-修改密码来看一下,类的创建和实例,首先,我们需要做的是声明一个能判断密码是否正确,并且能够更改密码的类,并在类中定义相关方法:

     

 class Authentic   //声明一个判定密码是否正确,并能够更改密码的类   
       {  
                                                               
        private string PassWord = "dengyigegushi";                  //在类中定义密码  
          
        public bool IsPasswordCorrect(string userPassword)      //在类中声明判断密码是否正确的方法  
        {  
            return (PassWord == userPassword) ? true : false;  
        }  
        public bool ChangePassWord(string oldPassWord, string newPassWord)//在类中声明更改密码的方法  
        {  
            if (oldPassWord == PassWord)  
            {  
                PassWord = newPassWord;  
                return true;  
            }  
            else  
                return false;  
           }
     将类实例化

     

 class Program  
    {  
        static void Main(string[] args)  
        {  
            Authentic simon = new Authentic(); //simon是authentic实例化得到的名字
              bool done;  
            done = simon.ChangePassWord("dengyigegushi", "dangxingfulaiqiaomen");  
            if (done == true)  
                Console.WriteLine("密码已更改");  
            else  
                Console.WriteLine("密码更改失败!");              
        }  
   }
           我们再来举个小例子,具体详细讲述类的创建:

      [<访问说明符>] [<修饰符>] class <classname>

       {

             //body of class

       }

      其中class是C#创建类所使用的关键字;<classname>是类的名称;<body of class>是类的成员,主要包括属性和方法!C#之旅,未完待续......

目录
相关文章
|
自然语言处理 Java 编译器
C#OOP之一面向对象简介
C#OOP之一面向对象简介
159 0
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
668 0
|
存储 开发框架 安全
C# .NET面试系列二:面向对象
<h2>面向对象 #### 1. 什么是构造函数? 构造函数(Constructor)是一种特殊类型的方法,它在创建类的实例(对象)时被调用,用于初始化对象的状态。构造函数的名称必须与包含它的类的名称相同,并且没有返回类型。 主要特点和用途包括: 初始化对象: ```c# 构造函数主要用于初始化类的实例。当使用 new 关键字创建类的对象时,构造函数会被调用,确保对象在使用之前处于一个合适的状态。 ``` 与类同名: ``` 构造函数的名称必须与包含它的类的名称完全相同。 ``` 没有返回类型: ```c# 构造函数没有返回类型,甚至不能声明 void。它的目的是初始化对象
180 0
|
设计模式 算法 C#
28【WinForm】C#实现商场收银软件,从面向过程到面向对象,设计模式的应用
实现商场收银系统从简单的面向过程到面向对象的演变。
300 0
|
数据可视化 程序员 C#
C# 面向对象三大特性
C# 面向对象三大特性
242 0
【C#视频】面向对象、数据类型
【C#视频】面向对象、数据类型
C#视频之面向对象
C#视频之面向对象
101 0
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
|
存储 算法 C#
C#面向对象程序设计课程实验三:实验名称:C#数组和集合
C#面向对象程序设计课程实验三:实验名称:C#数组和集合
C#面向对象程序设计课程实验三:实验名称:C#数组和集合

热门文章

最新文章