电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第3章 面向对象设计

34页
  • 卖家[上传人]:E****
  • 文档编号:89343318
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:180.50KB
  • / 34 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第3章 面向对象设计,面向对象设计是软件设计的一种方法。该方法是根据面向对象思想,以对象为基础来进行软件的设计。面向对象的设计方法主要应用于大型的软件项目中,其主要的优点是提高开发效率、节约成本、容易维护。本章将详细讨论如何在C#中声明类、接口以及其属性和方法的面向对象技术。,3.1 面向对象概述,面向对象是一种模块化的、以对象为基础的设计思想,现在被广泛应用于软件设计领域。本节将讲述面向对象的基本概念,以及如何使用面向对象的思想来设计。,3.1.1 对象的概念,在面向对象思想中,最基本的单元就是对象。对象可以代表任何事物,从个人到整个学校,一个整数到一个数据集合,一滴水到一条大河等,这些都可以看作是一个对象。对象不仅表示有形的实体,也可以表示无形的、抽象的事物,如课程、计划等。,3.1.2 面向对象的设计方法,面向对象方法(Object-Oriented Method)是把面向对象的思想应用于软件的开发中。从程序的角度来看,对象则是被封装起来的代码块,或者称为一个功能模块。在对象中,包含着若干个属性和方法。在面向对象中,和对象有直接关系的就是类。类是对象的一个抽象的概念,对象则是类的

      2、一个实例化。例如,如果把某个苹果看作是一个对象,则这个苹果可以抽象为一个水果类,这个苹果也是水果类的实例化。 面向对象的主要特征有3个:封装性、继承性和多态性。,3.2 命 名 空 间,命名空间是用来组织类的。通常可以把相关联的类放在一个命名空间中,进行有效的管理。本节将介绍如何定义命名空间,以及如何引用。,3.2.1 命名空间的概念,组织代码的最基本的单元就是类。把每个类分别写在一个文件中,可以更好地组织代码的结构。但是,有时候还需要组织各个类,将再次分类的类组织起来。微软公司的.NET架构提供了一种可以组织类的概念,那就是命名空间。 在.NET框架中,已经定义了很多系统的类,并存放在命名空间System中。,3.2.2 命名空间的定义和引用,用户可以自己定义命名空间,以便程序的功能可以更好地得到扩展,代码也可以更加有效合理地组织起来。本节介绍如何定义和引用命名空间。 1命名空间的定义 2命名空间的引用 使用命名空间之前,要先引用。引用命名空间是利用using关键字,后跟命名空间的名称。引用命名空间CustomNamespace1的代码如下: using CustomNamespac

      3、e1;,3.3 类,类是面向对象中最为重要的概念之一,是面向对象设计中最基本的组成模块。类可以简单地看作一种数据结构。本节讲述类的概念、如何声明类、类的成员等。,3.3.1 类的概念,在现实生活中,可以找出很多关于类的例子。例如,学生可以看作是一个类,那么某个同学就是这个学生类的一个实例化对象。同样,老师也可以看作是一个类,某个老师是老师类的一个实例化对象。从软件设计的角度来说,类就是一种数据结构,用于模拟现实中存在的对象和关系,包含静态的属性和动态的方法。,3.3.2 类的声明,C#中类的声明需要使用class关键字,并把类的主体放在花括号中,格式如下: 1. class-modifiers class class-name 2. 3. /属性 4. /方法 5. ,3.3.3 类的成员和访问控制,从类的继承关系上讲,类的成员可以分为两大类:类本身声明的和从基类继承的。类的成员的类型有以下几种:常量、变量、方法、属性、事件、索引指示器、操作符以及构造函数和析构函数。从类的访问角度上来讲,类的成员又可以分为四类:公有成员、私有成员、保护成员及内部成员。,3.3.4 构造函数和析构函数,

      4、构造函数主要的作用是执行类的实例的初始化。析构函数主要的作用就是回收系统占用的资源。 1构造函数 在实例化对象的时候,对象的初始化是自动完成的,并且这个对象是空的。有时候,希望每创造一个对象时都为其初始化某些特征,这时就需要用到构造函数。 2析构函数 上面介绍了使用构造函数在实例化对象时自动完成了一些初始化工作。反过来,在销毁对象的时候,有时候也希望能自动完成一些“收尾”任务。例如,关闭数据库连接等,C#使用析构函数来完成这个功能。,3.4 域 和 属 性,域和属性都提供了保存类的实例的数据信息的方法。域就是表示对象或类相关联的变量,属性则实现了数据的封装和隐藏。本节将重点讲述域和属性的概念和基本用法。,3.4.1 域,域可以简单地理解为成员变量,其主要作用是保存数据信息。域的修饰符可以是以下几种:new,public,internal,protected,static和readonly。例如,下面的代码段就是在类Class1中,声明了3个域。代码如下: 1. class Class1 2. 3. public int a; 4. protected string b; 5. priv

      5、ate decimal c; 6. ,3.4.2 属性,属性可以看作是实体特征的抽象表现。例如,一个学生的姓名、一个软件的大小、一个班级的人数等,这些都可以作为属性来表示。属性的声明涉及两个关键字:get和set。 get:表示对属性的读操作。 set:表示对属性的写操作。,3.5 抽 象 类,面向对象编程思想试图模拟现实中的对象和关系。但是,有时候,基类并不是与具体的事物相联系的,而是表达一种抽象的概念。抽象类就可以满足这种关系。本节讲述抽象类的概念和使用。,3.5.1 抽象类的概念,现实中,存在如图3-3所示的对象及关系,父类“运动员”有3个子类,这3个子类都可以继承父类的“训练”这个方法,但是,仔细考虑一下,父类“运动员”的训练该如何实现呢?,3.5.2 抽象类的声明,上面介绍了什么是抽象方法和抽象类,现在来看如何在C#中实现。 (1)在C#中,使用关键字abstract来定义抽象方法(abstract method),并需要把abstract关键字放在访问级别修饰符和方法返回数据类型之前,没有方法实现的部分,格式如下: public abstract void Train();

      6、 (2)子类继承抽象父类之后,可以使用override关键字覆盖父类中的抽象方法,并做具体的实现,格式如下: public override void Train() ,3.5.3 抽象方法,子类在继承了抽象父类之后,就可以具体实现其中的抽象方法了。3个子类运动员分别实现了抽象方法Train()。,3.6 接 口,接口实际上是定义了一组数据结构,通过这组数据结构,可以调用组件对象的功能。接口和抽象类很相似,在本节中,除了讲解接口的概念和使用外,还会讲述接口与抽象类的区别。,3.6.1 接口的概念,接口和抽象类非常相似,它定义了一些未实现的属性和方法。所有继承它的类都继承这些成员,在这个角度上,可以把接口理解为一个类的模板。,3.6.2 接口的声明,下面通过一个具体的例子,介绍如何在C#中声明和使用接口。 示例中有一个“形状”的概念,它有3个具体的形状类:矩形、圆形、三角形。可以看出,在某种意义上,接口与抽象类非常相似。,3.6.3 接口的实现,声明接口之后,类就可以通过继承接口来实现其中的抽象方法。继承接口的语法同类的继承类似,使用冒号“:”,将待继承的接口放在类的后面。如果继承于多个

      7、接口,使用逗号将其分隔。 下面的代码使用Rectangle类来求一个矩形的面积: 1. Rectangle r=new Rectangle(3,5); 2. Console.WriteLine(r.GetArea(); /输出15,3.6.4 接口与抽象类,接口和抽象类非常相似,它定义了一些未实现的属性和方法。所有继承它的类都继承这些成员,在这个角度上,可以把接口理解为一个类的模板。接口和抽象类的相似之处表现在以下两方面: (1)两者都包含可以由子类继承的抽象成员; (2)两者都不能直接实例化。,3.7 方 法,方法属于类的成员之一,用于执行计算或者其他的行为。在本节中将讲述如何声明方法、方法的参数以及方法的重载等。,3.7.1 方法的声明,方法声明的一般格式如下: method-header method-body 其中,method-header是方法头部,定义method-header的格式如下: attributes method-modifiers return-type member-name(formal-parameter-list) 其中,method-modifie

      8、rs是修饰符,可以是下面的几种:new、public、protected、internal、private、static、virtual、override、abstract和extern。,3.7.2 参数,方法的参数是调用方法时传递给它的变量,主要分为两类: (1)传递数据的值:直接把变量的数据值传递给方法; (2)传递数据的地址:把变量的内存地址传递给方法。 调用该方法如下: 1. Student s=new Student(“张三“,20); 2. s.SetHobby(“游泳“,“篮球“,“足球“); 如果不使用params方法,也可以使用数组来实现同样的功能。,3.7.3 静态方法,静态方法用于表示类所具有的行为,而非其对象所具有的行为。例如,学生分班这项任务,就是全体学生集体的事情。静态方法通过在定义中使用static关键字来声明,static关键字放在修饰符和方法返回的数据类型之前,格式如下: method-modifier static return-type method-name(parameter-list).;,3.7.4 方法的重载,有时候,对于类需要完成的同

      9、一个功能的要求可能比较复杂。例如,对学生类而言,如果想要使其具有一个“成长”方法,但是这个方法,可能使其增长一岁,也可能增加指定的岁数,该怎么解决这个问题呢? C#使用重载技术来完成这个功能。重载是指允许存在多个同名函数,而这些函数的参数不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。,3.7.5 操作符的重载,上面介绍了方法的重载,C#还提供了重载机制:允许重载运算符,如“+”,“”等,在原来功能的基础上,完成用户自定义的功能。例如,对于复数运算,可以定义方法: Add(1+2i,2+3i)=3+5i 而使用符号看起来会更简洁: (1+2i)+(2+3i)=3+5i,3.8 继承和多态,继承和多态是面向对象思想的两个主要的特征。本节讲述怎样理解类的继承和多态,以及继承和多态的使用。,3.8.1 继承,继承的本质是代码重用。当要构造一个新的类时,通常无需从零开始。例如,在学生类的基础上,建立一个“大学生”类。很明显,“大学生”这个类具有自己的特点,如“所在系”就并不是所有的学生都有的,而是大学生的特殊性质。 可以把大学生看作是学生的一种延续,既在继承了学生的属性和方法基础之上,又包含了新的属性或方法。在构造大学生这个类时,只需在学生类的基础上添加大学生特有的特性即可,而无需从零开始,这时,称学生类为父类,大学生类为子类。,3.8.2 多态,继续上一节给出的例子,现在假设一个运动员总教练,手下有篮球、足球、游泳运动员。把他们召集起来之后,如果总教练只是简单地对他们说:“去训练!”,那么他们会怎样做呢? 很自然,不同的运动员会去做不同的训练。对于总教练而言,只需要告诉他们统一的指令即可。在面向对象的思想中,这称为多态(Polymorphism)。,3.9 小结,本章主要讲述了C#的面向对象设计。其中重点讲解了几个基本的概念,包括对象、类、抽象类、接口和方法。通过本章的学习,应该初步理解C#面向对象的设计方法,学会如何使用面向对象的设计方法进行软件程序的设计。,

      《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第3章 面向对象设计》由会员E****分享,可在线阅读,更多相关《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第3章 面向对象设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.