- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 类和对象 C++程序设计 本章内容 8.1 面向对象程序设计方法概述 面向对象程序设计:把同一对象的数据和操作封装在一起,使用对象、类、继承、封装、消息等基本概念来进行的程序设计。 例如:人们生产汽车时,发动机、底盘、车身和轮子分别由不同生产厂商设计和制造,最后由汽车制造商组装在一起。在组装时,各部分之间有一定的联系,以便协调工作,各部分内部如何工作一无所知。 为了进一步说明问题,下面先讨论几个有关的概念。 8.1 面向对象程序设计方法概述 1. 对象 对象是具有明显边界和含义的概念、抽象或事物,一个对象代表了一个现实的或虚拟的实体。 8.1 面向对象程序设计方法概述 8.1 面向对象程序设计方法概述 对象属性举例: 一个学生对象属性:姓名、号码、性别、职业、年级。 一个教师对象属性:姓名、号码、性别、职业、职务。 一台录像机对象属性:型号、品牌、体积、重量、价格。 一台笔记本电脑对象的属性:? 8.1 面向对象程序设计方法概述 对象行为举例: 一个学生对象行为:听课、交作业、考试。 一个教师对象行为:讲课、改作业、监考。 一台录像机对象行为:录像、播放、暂停、快进、停止。 一台笔记本电脑的行为:? 8.1 面向对象程序设计方法概述 在一个系统中的多个对象之间通过一定的渠道相互联系,如图8.1示意。要使某一个对象实现某一种行为(即操作),应当向它传送相应的消息。对象之间就是这样通过发送和接收消息互相联系的。 8.1 面向对象程序设计方法概述 2、类 每一个实体都是对象。有一些对象是具有相同的结构和行为的。每个对象都属于一个特定的类型。 类(Class)是一组具有相同结构和行为的对象的集合。 8.1 面向对象程序设计方法概述 2、类 类的举例: 学生类、教师类、录像机、笔记本电脑、汽车、饮料、气体、矿石、人、动物……. 8.1 面向对象程序设计方法概述 3. 封装与信息隐蔽 封装:将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。 信息隐蔽:将对象中某些部分对外隐蔽,即隐蔽其内部细节,只留少量接口,以便与外界联系,接收外界的消息。 信息隐蔽有利于数据安全,防止无关的人了解和修改数据。 8.1 面向对象程序设计方法概述 3. 封装与信息隐蔽 8.1 面向对象程序设计方法概述 4. 继承与派生 继承是一种由已有的类创建新类的机制。子类从父类继承了共性,又派生出自己的各自的特性。 父类--?子类(派生类) 将门虎子——继承 8.1 面向对象程序设计方法概述 8.1 面向对象程序设计方法概述 8.1 面向对象程序设计方法概述 父类别可以被多个子类别继承, 子类别也可以是别的类的父类,从而建立类继承的层次结构。 8.1 面向对象程序设计方法概述 C++提供了继承机制,采用继承的方法可以很方便地利用一个已有的类建立一个新的类。这就是常说的“软件重用”(software reusability) 的思想。 继承的目的:实现代码重用。 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。 8.1 面向对象程序设计方法概述 5. 多态性 由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。 如:动物都会叫,但不同的动物的叫声不同。 如:在Windows环境下,用鼠标双击一个文件对象(这就是向对象传送一个消息),根据文件对象的不同,将做不同的操作。如果是可执行文件,则会执行此程序;如果是文本文件,则启动文本编辑器并打开该文件。 8.1.2 面向对象程序设计的特点 面向对象程序设计面对的是一个个对象。 程序设计者的任务包括两个方面: (1)设计所需的各种类和对象,即决定把哪些数据和操作封装在一起; (2)考虑怎样向有关对象发送消息,以完成所需的任务。这时他如同一个总调度,不断地向各个对象发出命令,让这些对象活动起来(或者说激活这些对象),完成自己职责范围内的工作。 各个对象的操作完成了,整体任务也就完成了。显然,对一个大型任务来说,面向对象程序设计方法是十分有效的,它能大大降低程序设计人员的工作难度,减少出错机会。 8.1.4 面向对象的软件开发 随着软件规模的迅速增大,软件人员面临的问题十分复杂。需要规范整个软件开发过程,明确软件开发过程中每个阶段的任务,在保证前一个阶段工作的正确性的情况下,再进行下一阶段的工作。这就是软件工程学需要研究和解决的问题。
文档评论(0)