C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章

上传人:E**** 文档编号:89449753 上传时间:2019-05-25 格式:PPTX 页数:196 大小:893.04KB
返回 下载 相关 举报
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章_第1页
第1页 / 共196页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章_第2页
第2页 / 共196页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章_第3页
第3页 / 共196页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章_第4页
第4页 / 共196页
C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章_第5页
第5页 / 共196页
点击查看更多>>
资源描述

《C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章》由会员分享,可在线阅读,更多相关《C#编程和.NET框架 教学课件 ppt 作者 崔建江 第4章 第四章(196页珍藏版)》请在金锄头文库上搜索。

1、C#编程和.NET框架 (第二版) 主讲人:崔建江 东北大学信息科学与工程学院,C#编程与.NET框架,第3章 面向对象的C#编程方法,第4章:面向对象的编程技术,3,概要内容,本章介绍了面向对象程序设计的基本知识,包括类和对象一些基本概念;另外,本章还描述了面向对象设计的重要原理,包括封装性、继承性和多态性。,第4章:面向对象的编程技术,4,第4章 面向对象的编程技术,1.面向对象 2.类 3.封装性 4.继承性 5.多态性,第4章:面向对象的编程技术,5,4.1 面向对象,什么是面向对象程序设计? 为什么产生面向对象程序设计?,第4章:面向对象的编程技术,6,4.1 面向对象,1 结构化程

2、序设计 结构化方法围绕处理功能的实现“过程”来构造软件系统,特别适用于需求能够预先确定的系统的开发。 指导思想:自顶向下、逐步求精、模块化。语句结构化。 基本原则:抽象和功能分解 结构化方法围绕处理功能的实现“过程”来构造软件系统,第4章:面向对象的编程技术,7,4.1 面向对象,2. 面向对象程序设计 指导思想:以对象为中心,分析、设计及构 造应用程序的机制。 利用面向对象的方法求解问题时,观察问题的角度将定位于现实世界中存在的客体,并在解空间中用对象来描述客体,用对象之间的关系来描述客体之间的联系,用对象之间的通信来描述客体之间的相互交流及相互驱动,从而达到问题域到解空间的直接映射,实现计

3、算机系统对现实世界环境的真正模拟。,第4章:面向对象的编程技术,8,4.1 面向对象,3 区别举例 任务:对提供单词进行检查 分析: 结构化方法 四个动作: 输入单词、拼写检查、寻找单词、输出信息 三个模块: 输入单词、检查寻找、结果输出,第4章:面向对象的编程技术,9,4.1 面向对象,3 区别举例 任务:对提供单词进行检查 分析: (2) 面向对象方法 三个客体: 用户、单词、字典 两个大类: 单词、字典,第4章:面向对象的编程技术,10,4.1 面向对象,区别:分析问题角度不同 结构化功能操作之间的关系 面向对象各个对象之间的关系 优缺点: 结构化适用功能不太复杂,关系明朗的小 型程序中

4、。 面向对象分析问题角度与现实世界考虑问 题的角度相一致,适用于大型程序中。,第4章:面向对象的编程技术,11,4.1 面向对象,基于组件和基于对象之间区别: 有些人认为C#是基于组件的。 基于组件的开发可以看作是面向对象技术的扩展。组件是执行特定任务的独立代码片段。基于组件的编程需要创建大量可被重用的独立组件,可以将组件链接起来,创建应用程序。,第4章:面向对象的编程技术,12,4.1 面向对象,4. 两个重要概念对象 何为对象? 自然实体 (有形) 概念实体 (无形),生产计划,第4章:面向对象的编程技术,13,4.1 面向对象,4. 两个重要概念类 具有相同属性和操作的一组对象的集合。,

5、第4章:面向对象的编程技术,14,面向对象方法,面向对象是一种新的软件工程方法,程序设计范型 基本技术:使用对象、类、继承、封装、消息等基本概念进行程序设计和实现 基本思想:尽可能地运用人类的自然思维方式来构造软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,对象就是客观实体的抽象。,第4章:面向对象的编程技术,15,面向对象技术的基本观点,客观世界是由对象组成的。 具有相同的数据和相同的操作的对象可以归并为一类,对象是类的一个实例。类可以产生对象。 类可以派生子类,子类继承父类的特性。 对象之间通过消息传递相互联系。 软件工程学家Codd和Yourdon认为: 面向对象程序=对象+

6、类+继承+通讯,第4章:面向对象的编程技术,16,面向对象的软件工程(OOSE)方法,面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的维护(OOSM),第4章:面向对象的编程技术,17,面向对象方法的优点,按照人类的自然思维方式,面对客观世界建立软件系统模型。有利于对问题域和系统责任的理解,有利于人员交流。 对需求变化的适应性。把最稳定的部分,即对象作为构筑系统的基本单位,而把容易发生变化的部分,既属性与服务,封装在对象之内,对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。 可维护性好。 支持软件重用。对象所具有

7、的封装性和信息屏蔽等特性,使它容易实现软件重用。对象类可以派生出新类,类可以产生实例对象,这些就实现了对象类的数据结构和操作代码的软构件重用。,第4章:面向对象的编程技术,18,面向对象的软件开发语言与工具,1981推出的Smalltalk-80 面向对象的C/C+、Basic、Pascal、Fortran、Lisp、ADA、Java、C#等 MicroSoft公司的Visual C+、Visucal Basic 计算机辅助软件工程(CASEComputer Aided Software Engineering) Rational Rose一个面向对象的且支持UML语言的CASE工具,第4章:

8、面向对象的编程技术,19,面向对象的系统分析与设计方法 -面向对象中的基本概念,对象 (Object )/类(Class) 抽象 (Abstraction) 继承 (Inheritance) 多态性(Polymorphism) 封装 (Encapsulation) 消息 (Message) 关联 (Association) 聚集 (Aggregation),第4章:面向对象的编程技术,20,什么是对象?(Object),一个对象代表了一个现实的或虚构的实体 自然实体(有形) 概念实体(无形),化学过程,生产计划,第4章:面向对象的编程技术,21,对象(对象技术围绕对象的概念来建立),对象从不同

9、的角度有不同的含义 问题论域:对象指现实世界中的一个事物。如:人、房屋、洗衣机等 建模和实现:对象描述客观事物的一个实体,是构成系统的基本单元。 对象特征:静态特征和动态特征 问题论域:一个对象所包含的特性和行为 系统:一个对象所包含的数据(属性)和使用这些数据的所有功能(操作) 对象属性:描述对象静态特征的数据项 对象操作:是对象动态特征的体现 对象之间通过消息通信 一个对象通过向另一个对象 发送消息激活某一 个功能,第4章:面向对象的编程技术,22,什么是类?(Class),类是对象的抽象,给出了属于该类的全部对象的抽象定义。(从对象抽象出类) 问题域:类是一组具有相同特性和行为的对象的集

10、合 系统: 共同的特性通过属性表现出来 (数据) 共同的行为通过操作表现出来 (功能) 类是对象的模板,用它可以产生多个对象,一个具体的对象只是类的一个实例。(从类产生对象) 在面向对象的系统分析与设计中,并不需要对逐个对象进行说明,而是着重描述代表一批对象共性的类,第4章:面向对象的编程技术,23,类的示例,Structure Name Address Position Salary Start Date End Date,Class Employee,Behavior Hire Fire Promote Increase Salary Retire,第4章:面向对象的编程技术,24,类,具

11、有相同特征和操作的对象可以放到类中。 在下面图中可得到哪些类?,第4章:面向对象的编程技术,25,对象的类,可定义几个类?,第4章:面向对象的编程技术,26,属 性,属性是类的特征或特性 属性的值是某一特定对象的属性值 在类中属性名必须是唯一的 每一个类的实例都有为这个类定义的所有属性的值 例如:,银行帐户类属性 帐号 银行名称 拥有者 金额,Mary的银行帐户属性值 12345678 First National Bank Mary Smith $1024.48,第4章:面向对象的编程技术,27,属性取决于视点,从销售人员的角度 型号 价格 颜色 里程数,从维修人员的角度 马达类型 传动类型

12、 维修记录,一辆汽车具有的属性:,第4章:面向对象的编程技术,28,操 作,对象的行为由为此对象定义的一系列操作决定的 操作访问或修改对象的属性值 一个类的所有实例都可使用在该类中定义的操作,第4章:面向对象的编程技术,29,操作取决于视点,从销售人员的角度 处理客户定单 准备销售合同 加入清单 从清单中删除,从维修人员的角度 测试刹车 修理刹车 转动轮胎 检查马达速度,一辆汽车具有的操作:,第4章:面向对象的编程技术,30,属性和操作的标记法,在类的图标中描述属性和操作 通常只显示最重要的属性和操作,避免图形混乱 属性显示在操作上方,操作的名字后跟有(),字段,数据成员,方法成员,第4章:面

13、向对象的编程技术,31,类和对象的关系,每一个对象都是某一个类的实例 每一个类在某一时刻都有零个或更多的实例 类是静态的; 它们的存在、语义和关系在程序执行前就已经定义好了 对象是动态的; 在程序执行时可以被建立和删除,第4章:面向对象的编程技术,32,抽象( Abstraction)类的建立,一个对象是现实世界中一个实体的抽象 抽象是一种单一化的描述: 强调与给出应用有关的特性 抑制不相关的特性 一个类是一组对象的抽象 抽象通过注重主要的、与问题有关的特性,帮助 处理复杂系统 关键在于找出重要的、有关的类,以及每个类中重要、有关的操作和属性,第4章:面向对象的编程技术,33,继承(Inher

14、itance),子类(特化类、派生类)可以自动拥有父类(基类、泛化类、超类)的属性和操作。 例如: “家用电器”类是父类, 公共的属性:开关、电线, 公共的操作是:开机、关机, 则:“洗衣机”、“冰箱”、“电视机” 等是子类 继承可以提高软件的可重用性。,第4章:面向对象的编程技术,34,多态性(Polymorphism),在父类中定义的属性和服务为其子类继承后,可以具有不同的数据类型或表现出不同的行为。重载 如:“打开一扇门” “打开一个银行帐号” “打开一段对话” 等, 虽然都是“打开”操作,但执行的是不同的行为动作。 对建模者,多态性也很重要,它可以让建模者用客户的语言和术语与客户交流。

15、有些术语可能导致操作词有多种不同的含义。理解多态性的概念可以让建模者省去发明新术语以及维护术语一致性的麻烦。 多态性机制不但为软件的结构设计提供了灵活性,减少信息冗余,而且显著提高了软件的可复用性和可扩充性。,第4章:面向对象的编程技术,35,封装(Encapsulation),将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。 封装体现了面向对象方法的“信息屏蔽与局部化”的原则。,第4章:面向对象的编程技术,36,消息(Message),对象间在交互中所传送的通讯信息。 如:电视机,遥控器对象向电视机对象发送消息。 注意:消息的传递在程序中的体现。哪些可以完成该功

16、能。,第4章:面向对象的编程技术,37,关联(Association),关联:对象之间所存在的联系。 联系:分类关系(一般与特殊),聚集和组成关系(部分与整体),属性之间的静态联系(实例连接),对象行为的动态联系(消息连接)。 多重性:关联中一个类的对象可以对应另一个类的多个对象。,第4章:面向对象的编程技术,38,4.1 进一步的内容-类图与对象图设计,UML中的对象类图(Class Diagram)与对象图(Object Diagram)具有强大的表达能力,能有效地对现实世界的业务领域和计算机系统建立可视化的对象模型。 类图与对象图用来表达对象模型的静态结构。,第4章:面向对象的编程技术,39,对象类图,类图表达一组类和它们之间的联系。 描述各个对象类本身的组成,即类的属性、操作和对对象的约束条件等。 描述系统中对象类之间的各种静态的联系。 类图是一种静态结构图,它描述的是系统的静态结构,而不是系统的行为。 类之间的静态联系主要类型有:关联、聚集、组合、泛化/特化、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号