- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC讲义第单元类与对象(I)
第7单元 类和对象(I)
本单元教学目标
介绍面向对象程序设计方法的基本原理以及类和对象的概念。
教学要求
掌握面向对象的程序设计思想,类和对象的概念,以及类的声明方法和对象的引用。
授课内容
7.1 面向对象的程序设计
在面向对象的程序设计技术(OOP: Object Oriented Programming)出现前,程序员们一般采用面向过程的程序设计方法。面向过程的程序设计方法采用函数(或过程)来描述对数据结构的操作,但又将函数与其所操作的数据分离开来。作为对现实世界的抽象,函数和它所操作的数据是密切相关、相互依赖的:特定的函数往往要对特定的数据结构进行操作;如果数据结构发生改变,则必须改写相应的函数。这种实质上的依赖与形式上的分离使得用面向过程的程序设计方法编写出来的大程序不但难于编写, 而且难于调试和修改。
面向对象程序设计从所处理的数据入手,以数据为中心而不是以功能为中心来描述系统。数据相对于功能而言具有更强的稳定性。面向对象程序设计与结构化程序设计最大的区别就在于,前者首先关心的是所要处理的数据,而后者首先关心的是功能。
面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间中的实体。关于对象这一概念,目前还没有统一的定义。一般的认为,对象是包含现实世界物体特征的抽象实体,反映了系统为之保存信息和(或)与之交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
类是具有相同操作功能和相同的数据格式(属性)的对象的集合,可以看作抽象数据类型的具体实现。从外部看,类的行为可以用新定义的操作(方法)加以规定。类是对象集合的抽象,规定了这些对象的公共属性和方法;对象是类的一个实例。例如,苹果是一个类,而放在桌上的那个苹果则是一个对象。对象和类的关系相当于一般的程序设计语言中变量和变量类型的关系。
消息是向某对象请求服务的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送消息。
面向对象的编程方法具有四个基本特征:
1. 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,忽略与主题无关的细节。例如,在设计一个学生成绩管理系统的过程中,考察学生张三这个对象时,我们只关心他的班级、学号、成绩等,而他的身高、体重等信息就可以忽略。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。
2. 封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装把过程和数据封藏起来,对数据的访问只能通过已定义的界面。面向对象技术的基本概念就是现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。通常,应禁止直接访问一个对象的实际表示,只能通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
3. 继承:继承是一种联结类与类的层次模型。继承允许和鼓励类的重用,提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原来类的特性,新类称为原来类的派生类(子类),而原来类称为新类的基类(父类)。派生类可以从其基类那里继承方法和成员变量,当然也可以对之进行修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好地解决了软件的可重用性问题。
4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。例如同样的加法,把两个时间加在一起和把两个整数加在一起的内涵肯定完全不同。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
面向对象程序设计具有许多优点:开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的编码可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间,使应用程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。
7.2 类与对象
7.2.1 类的声明
C++类的结构比较复杂,可以将其
文档评论(0)