类与对象的基本概念_第1页
类与对象的基本概念_第2页
类与对象的基本概念_第3页
类与对象的基本概念_第4页
类与对象的基本概念_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、类与对象的基本概念数 据 结 构类与对象的基本概念1.1 类与对象人类是一个类(class)。张三是人,李四是人,都是人类的实例(instance),或称对象(object)。一个类描述一类事物以及该类事物所应具有的属性,如人有身长、体重、文化程度、性别、年龄等。一个对象是类的一个实例,它具有确定的属性值,如张三身高1.80米,体重70公斤,大学本科,男,21岁。人类只有一个,人类的实例可以有无数个。对象是具体的,对象可以被创建和销毁。类是抽象的,类是无所不在的。 例如桌子是一个类,人们不断打造各种尺寸和各种风格(属性)的桌子(桌子的实例),打造桌子,又不断毁坏桌子。年复一年,旧的去了,新的又

2、来,但桌子的概念没变。它是一个抽象的概念。应该称它为桌子类,以区别于打造的具体桌子。在计算机领域中,对象是指在应用问题中出现的各种实体、事件、规格说明等。它是由一组属性值和在这组值上的一组服务(或称操作)构成的。其中,属性值确定了对象的状态。例如,一个显示在计算机屏幕上的圆,作为一个几何对象,它是由圆心坐标、半径长度、边线颜色和内部颜色等属性值来确定位置、大小、颜色等状态。可以通过对象的服务来改变该对象的属性值。 例如,服务move(x,y),将一个圆移动到由实数x,y所指定的圆心的新位置上。 服务setRadius(r)、改变圆形的半径。 服务setEdgeColor(c),改变圆形的边的颜

3、色和其内部颜色。 在面向对象的方法中,类是具有相同操作(服务)与相同数据格式(属性)的对象的集合。类中的每一个对象称为该类的一个实例(instance)。有一个计算机电子邮件系统,其主要工作涉及到发信人写信、收信人看信,还有电子邮件系统中信的收(receive)、发(send)及存储(store)等方面。 例如,你在计算机上写一封信给你的同事John,那么这封信本身是一个对象。它具有一般信所有的共性。例如,有信的内容和允许你处理的一些方法或动作(读信、写信、发信等)。信的内容在计算机中称为数据,而需要处理的一些方法和动作,在计算机里则统称为“操作”,将这些信的共性汇集起来就有了对象这一概念。用

4、计算机软件的术语可描述为公式对象=数据+动作所有的信的集合就构成了类,信中的内容不同(即对象的属性值不同)。类中的“信”都具有相同的服务:发信。发送英文信和发送日文信的方式是一样的。处理英文信和处理日文信有相同的方式,还有一些各自独有的方式。那么,如果建立两套平行的信件处理机制,显然是不经济的。 可以由“信”这个类来定义两个类:“英文信”和“日文信”,它们保留了“信”类的服务,并添加上各自独立的服务。这种“保留”称为“继承”。 “信”类称为基类,基类又可称为父类、超类或泛化类。它具有一般信件的公共操作,读、写、发送信。“英文信”、“日文信”称为派生类,又可称为子类或特化类。它们继承了其超类“信

5、”和读、写、发送等操作,但同时又加上它们自己的“英文”和“日文”特定操作。类、派生类和实例的关系如图2-1所示。 继承和重用是相辅相成的两个概念。 要制造新的电冰箱,可以有两种选择: 一种是从草图开始; 另一种是对现有的电冰箱的型号加以改进。 也许现有的型号已经令人比较满意,但如果再增加两个功能,会更加完美。 在原有的型号基础上增加两组电路,很快就制造出来新的电冰箱了,被赋予一种新的型号。这就是继承和重用。 继承是一种联结类的层次模型,并且允许和鼓励类的重用。 层次结构的上层(或祖先类)最具有通用性。 下层部分,即后代具有特殊性。 类可以从它的祖先那里继承方法和实例变量(即对象中可访问的数据)

6、,也可以修改或增加新的方法使之更符合特殊的需要。 1.2 消息与合作一个对象内具有过程和数据。外部的用户或对象对对象提出的请求,可以称为对该对象发送消息。在电子邮件系统的例中,对象“信”具有读信、写信或发信等操作,是由系统设计者开发并由对象“信”提供给用户的,用户可以发送一个消息(或称为请求)来请求所需的服务。在面向对象的方法中,另一个经常用的概念就是“合作”。 合作是指两个对象之间共同承担职责来达到某一目标。当你告诉对象“信”,你想把它发送给John时,你此时的作用就是一个客户。对象“信”在这里相当于一个服务器。它提供给你一个服务。 你还可以要求别的服务,如读、写信等。很多人用客户/服务器模

7、型来描述面向对象模型。在这个模型中,各个对象具有完成不同任务的职责,客户对象可以通过服务器对象来完成一些任务。 这里把两个对象共同承担职责称为“合作”。1.3 多态性多态性机制是指允许不同类的对象对同一消息作出响应。 以前面提到的电子邮件系统为例,现有局域网类对象LAN和宽域网类对象WAN,这两类对象均可对来自对象“信”的同一消息“发送给John”作出响应。即对同一个“发送给John”操作,可以有不同的实现方法。可以通过TCP-IP协议来找到John,也可通过X.25协议来找到John,这是在系统运行时由系统决定的。这种动态决定实现方法的机制称为动态联编(dynamic binding)。 一个多态性的例子: 学生类应该有一个计算成绩的操作。大学生继承了中学生。对于中学生,计算成绩的操作是对语文、数学、英语等课程的计算,而对于后继的大学生,计算成绩的操作是对高等数学、计算机、普通物理等课程的计算。 多态性引用静态类型和动态类型。多态引用的动态类型可以在程序执行期间在实例之间进行变化。 在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论