zoukankan      html  css  js  c++  java
  • C#入门面向对象编程(OOP概念、原则、特性)

    一、通过实例比较程序编写的两种思想

    1、程序的基本概念

    (1)生活化理解:人们完成一件事情,并得到一个结果,从做事开始得到结果的步骤,就是程序。

    (2)好处:对于重复性的事情,规定好步骤,孰能生巧,提高效率。

    (3)计算机程序:就是通过计算机完成一个或多个任务,这个任务需要编写计算机能够执行的指令。这些指令就是程序。

             程序语言:二进制机器指令;汇编语言;C语言;C++;JAVA;C#...

             所有高级语言,最终都要被翻译成二进制指令(1,0)才能被计算机执行。

             高级语言到低级语言的“翻译官”,已经由语言开发工程师完成了。

    2、程序编写的两种思想PK

          面试题目:请基于OOP,完成一个简单的计算器

    (1)面向过程(OP)是以一种“过程/流程”为中心的编程思想。

             方法:分析问题,总结步骤,按照一定的流程完成任务。

             缺点:随着项目规模的扩大,业务复杂度提高,基于一个个函数编写,会变得非诚杂乱!

                        后续维护几乎无法完成,况且任务本身也不见得能完成。

             适合:嵌入式开发,比如C语言。需要和硬件交互。

    (2)面向对象是一种以"事物/对象"为中心的编程思想。

            思考:当然任务大致有几个?我们根据需求分析,知道当前需要完成两个数相加减预算任务,我们设计一个计算器对象,然后把两个任务封装成方法。

                     然后,我们在主程序中,通过对象去完成这个运算任务。

            好处:我们需要的任务,单独指派特定的对象,可以由更专业的人去完成,我们可以不用关心这个对象怎么实现的,我们只管使用!(封装)

           对象的设计者,可以更集中的研究对象内部的实现,对象的调用者,只关心对象的使用。而不用关心对象的设计。(高内聚、低耦合)

           对于项目页后续的更新、维护、基于面向对象设计程序,会变得非常简单和方便。

           适用:各种规模的企业应用管理系统。

    二、OOP的各种原则

    1、单一职责

    要求:一个对象只能做好一件事情,必须专注,职责过多,会引起代码混乱,维护麻烦。

             如果一个类封装方法或属性的时候,比较多,就要考虑这些方法属性是不是属于这个对象。

    2、开放封闭原则(开闭原则)

           要求:需求变化时,尽量减少类的修改,而是通过扩展来完成。封闭修改,开放扩展。

    3、依赖倒置原则

          要求:基于接口编程,高层模块调用接口,底层模块实现接口,防止底层变化直接影响高层

    4、接口隔离原则

         要求:尽可能多的使用专用小接口,而不是总接口,避免接口过于复杂

     5、里氏替换原则

        要求:在继承关系中子类可以替换父类,虚拟机可以根据父类变量动态的找到具体的子类对象,从而实现多态。

    总结:学好面向对象编程,就是要掌握面向对象编程的各种原则,方法等指导我们如何写程序。

              同时学习别人总结的各种技巧、规范、经验、模式等。

    三、面向对象的三大特性:

    (1)封装:隐藏内部实现细节,模块开发者只关心内部实现,模块调用者,只关心接口调用。

            好处:安全性保障。(避免代码外漏)、快速应用、团队协作。

           应用:类是程序的基本单元。代码被封装到类里面,一个类是一个单元,是一个封装,

                     方法也是一定程度的封装,模块又是对类的封装。系统也在某些时候也是封装的体现。

    (2)继承:复用技术。

         好处:一处更新,处处使用。弊端:关联会越来越复杂。

         我们自己编写的代码,一般使用继承关系的并不多。

    (3)多态

       概念:让一个对象的接口可以根据不同的请求,做出不同的响用。

       应用:继承多态、接口多态。

    四、面向对象的概念

    1、对象的概念

    (1)面向对象编程的目的:希望用对象的概念和方法解决复杂的程序问题。用面向对象的各种方法、原则、技巧、经验等指导程序编写。

    (2)从生活中理解对象:公交车、电脑、人

    (3)生活中对象概念:对象就是我们可以触及的各种事物。对象的特点:都有静态特征(描述对象是什么样子的),也有对象动态特性(对象能干什么)

    (4)研究对象的目的是什么?不同的行业,不同的人员研究对象的方面是不一样的。软件开发者研究对象的目的,就是为了处理“对象数据”。

    2、类的概念

    (1)对象怎么研究:首先,要描述研究对象的那些特征(静态的、动态的)。其次,抽取要研究的内容,按照一定的要求组合起来

    (2)类的概念:同类型对象的共同特征的组合,类是抽象的,只是一个模板而已。软件开发中共同的属性和方法被组织在一个单元中,就被称为类。

    (3)抽取“学生”对象的共同特征:静态特征:姓名、年龄、班级、身份证号、联系电话...动态特征:保存个人信息、展示个人信息

    3、类和对象的总结

    从以下方面把类的理解简单化

    (1)类规定能够存储的数据类型有哪些,能够执行的方法或者说能完成的任务是什么

    (2)类的数据类型(属性)和动作(方法),是根据软件的需求分析得到的

    (3)类定义仅仅是一个说明,保存在类文件中。

    (4)类是一种结构化的数据类型

    从以下方面把对象的理解简单化

    (1)对象一类为模板,通过对象使用类里面的数据类型和方法

    (2)对象在内存中

    (3)对象属性使用:对象名.属性名(通过get和set方法实现)

    (4)对象方法使用:对象名.方法名

    (5)对象通过调用属性获取对应字段的值或给字段赋值。因此,属性是外界访问私有字段的一个入口。

  • 相关阅读:
    php 计算两点地理坐标的距离
    objective-c中#import和@class的差别
    我与小娜(07):量子通信的奥
    OpenStack部署到Hadoop的四种方案
    iOS UI13_数据解析XML_,JSON
    Redis集群
    《AndroidStudio有用指南》反馈问题和建议
    numpy函数库中一些经常使用函数的记录
    1015 history grep |mysql
    php 生成压缩文件
  • 原文地址:https://www.cnblogs.com/cuig/p/8660531.html
Copyright © 2011-2022 走看看