- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象与对象模型 4.1 面象对象的概念 4.1.1 面向对象基本原理 4.1.2 类和对象的概念 4.1.3 UML和对象建模 4.1.4 简评面向对象 4.1.1 面向对象基本原理 面向对象方法学对复杂的客观世界进行抽象和认识,形成如下基本观点: 1)客观世界(事物)由各种各样的实体组成,这些实体称为对象。例如:司机、卡车、轿车等。 2)每个对象都具有各自的内部状态和运动规律(自主性);而且,在外界其他对象或环境的影响下,对象本身根据具体事件做出不同的反应,进行对象间的交互(消息机制)。 4.1.1 面向对象基本原理 3)按照对象的属性和运动规律的相似性,可以将相近的对象划分为一类。例如:卡车、轿车这一类对象可以划分为汽车类。(一般-特殊结构/继承关系) 4)复杂的对象由相对简单的对象通过一定的方式组成。例如:汽车对象可以由发动机、轮子、底盘等多个对象组成。(整体-部分结构/聚合关系) 5)不同对象的组合及其间的相互作用和联系构成了各种不同的系统,构成了人们所面对的客观世界。 4.1.2 类和对象的概念 0、基本概念 (1)类(class):具有相同属性和操作的一组对象的集合,为属于该类的全部对象提供了统一的抽象描述。类似于模版。体现了抽象原则。 (2)对象:问题域或实现域中某些事物的一个抽象,反映了该事物在系统中需要保存的信息和能够发挥得作用,是一组属性和有权对这组属性进行存取和修改的一组操作的封装体。 (3)属性:描述对象静态特征的数据项。 (4)操作:描述对象动态特征(行为)的动作序列。 4.1.2 类和对象的概念 对象的封装性(encapsulation) 在OOP中,最基本的理解是把对象的数据和代码组合在同一个结构中,这就是对象的封装特性。将对象的数据字段封闭在对象的内部,使得外部程序必须而且只能使用正确的方法才能访问要读写的数据字段。封装性意味着数据和代码一起出现在同一结构中,如果需要的话,可以在数据周围砌上“围墙”,只有用对象类的方法才能在“围墙”上开个“窗口”。利用封装性,可以把相关的数据和代码结合在一起,并隐藏了实现细节。(黑盒子)(相对独立性) (使软件错误局部化,减少差错难度) 4.1.2 类和对象的概念 2 对象的继承性(inheritance) 继承性是OOP中最重要的特性之一。指一个类(派生类)能够从另一个类(基类)中自动或隐含地获取属性和方法。继承的好处是能共享代码,继承后,父类的所有字段和方法都将存在于子类中。(软件复用) 继承关系是可传递的。 C#只支持单继承。 多继承容易产生“命名冲突”问题。 4.1.2 类和对象的概念 对象的多态性(polymorphism) 多态性描述的是如下现象:如果几个子类都重新定义了父类的某个函数(都用相同的函数定义),当消息被发送到一个子类对象时,该消息会由于不同的子类而被解释为不同的操作。 与多态性有关的概念:重载(overload)动态绑定(dynamic binding)。 4.1.2 类和对象的概念 4、聚合(aggregation) 一个复杂的对象以若干比较简单的对象作为其组成部分,这称为聚合,反映了整体-部分结构。 聚合实现方式: (1)用部分对象作为整体对象的一个属性。此时一个部分对象只能隶属于唯一的整体对象,表示紧密、固定的聚合关系。 (2)独立地定义和创建整体对象和部分对象,并在整体对象中设置一个属性,它的值是部分对象的对象标识。此时整体对象和部分对象可以有不同的生存期,表示松散、灵活的聚合关系。 4.1.2 类和对象的概念 5、消息(message) 消息是对象之间在一次交互中所传送的信息。 封装使对象成为一些各司其职、互不干扰的独立单位;消息通信为它们提供了唯一合法的动态联系途径,使它们的行为能够相互配合,构成一个有机的、运动的系统。 4.1.3 UML和对象建模 模型与建摸 软件模型除了用于系统设计还可以用在很多的方面,例如预期系统的质量、在系统的某些方面变化时推理特定的属性、测试关键的系统特征等。模型可以先开发出来用于指导物理系统的开发,或者也可以由一个已存在的系统或者开发中的系统产生,作为理解系统行为、优化系统实现的手段。 4.1.3 UML和对象建模 从软件建模技术的发展过程中,人们认识到建模语言是一种图形化的文档描述性语言,利用它可以解决在软件建模过程中存在的沟通障碍问题。面向对象建模中使用了一些带有图形符号的建模语言,就好像是五线谱中的音符一样。 4.1.3 UML和对象建模 统一建模语言UML
文档评论(0)