面向对象技术_第1页
面向对象技术_第2页
面向对象技术_第3页
面向对象技术_第4页
面向对象技术_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

面向对象技术简介

面向对象的基本思想

面向对象是一种新兴的程序设计方法,或

者是一种新的程序设计规范(paradigm)淇基

本思想是使用对象、类、继承、封装、消息

等基本概念来进行程序设计。从现实世界中

客观存在的事物(即对象)出发来构造软侔

系统,并且在系统构造中尽可能运用人类的

自然思维方式。开发一个软件是为了解决某

些问题,这些问题所涉及的业务范围称作该

软件的问题域。其应用领域不仅仅是软件,

还有计算机体系结构和人工智能等。

面向对象语言发展历史

非面向对象语言面向对象语言

Fortran(50年代Simula(60年代后期)

中期)•Ada(70年代前期)

•Algol(60年代)•Smalltalk(72年开始)

•Pascal(68年)•C++(80年由Bell

(年)

•Basic64公司Stroustrup创建)

■C语言(72年

•Java(94年由SUN

DennisRitchie

公司创建)

创建)

面向对象技术的作用

1.提高生产效率。表现在:程序重用共享

2.降低维护复杂性。表现在:程序模块化

3.开发大型软件。主要表现在:

•抽象模型更接近现实世界。

•模型与程序易于理解

•程序具有重用性和模块化

•软件易于维护

面向对象技术的应用

1.面向对象数据库(OODB

Object-OrientedDatabase)

2.面向对象的系统模拟

3.面向对象的人机交互图形用户界面

(GUI,GraphicUserInterface)

4.人工智能和知识工程

5.计算机辅助软件工程(CASE,

Computer-AidedSoftware

Engineering)

6.计算机网络设计模拟

面向对象技术的基本特征

主要特征:对象、类、封装、继承、消息、

结构与连接、及多态性.

对象(object)

实体对象H一台计算机

抽象对象区一项计划

什么是对象:用来描述客观事物的一个实

体,它是构成系统的一个基

本单元。一个对象由一组属

性和服务组成。

对象构成要素:

L对象标识符(对象名)2.属性3.服务

标识符:是对象的名称,用来区别与

其他对象。

属性:是用来描述对象静态特征的

一个数据项。

服务:是用来描述对象动态特征和行为的

一个操作。

例题:考虑对象“学生”,具体描述为:

对象名学生

学号、姓名、专业、性别、

属性

年龄、身份证号、电话等等

获取和修改学号、姓名、

服务专业、性别、年龄等等

注意点:1.一体性H三者成为一体

2,区别区的园IJ三者的区别

例题:对象“课程”的有关抽象描述。

对象名课程

课程名、编号、学时数、选课

属性要求、任课教师等

获取并修改课程名、编号、学

服务时数、选课要求、任课教师等

注意点:1.属性是对对象的静态描述.

2.服务是对对象的动态描述.

外部是通过调用服务与对

象取得联系.

类(class)

什么是类区是具有相同属性和服务的集

合,它提供对对象的抽象描述

类与对象的关系W类0对象

抽象定义实例

例题模具今由模具压出的工件

学生今学生张三

模板今应用模板产生的文件

类型=变量,如c语言中的

int和intx;

类的分类区I抽象类,基类(父类),

派生类(子类),等等

基类区I运用抽象原则,舍弃对象的

特殊性,提取对象的共同性,

得到的一个对象集的类.

派生类区I在基类的基础上,再考虑在

抽象过程中被舍弃的对象

的特殊性,而产生的新类.

例题4:若考虑类“学生”,则类“大学生”

和“中学生”就是它的派生类。类

“学生”是它们的基类。

•派生类具有基类的全部

基类与派特征。\

生类的关•派生类有自己的特征,

系不完全等于基类。

•它们有继承关系,派生

类是基类的子集。

例如,基类“学生”和派生类“大学生”

的关系。

分类的目•对现实世界的实体进行

的和意义分类,便于应用OOT。

•直观地,正确地,有层

次地表达现实世界。

例题:

考虑运输工具这个实体,它包含

了车辆,车辆又包含机动车和非机

动车,机动车又包含轿车和卡车等

等。如果建一基类“机动车”,则

“轿车”和“卡车”就是“机动车

”的派生类,而“车辆”可以是基

类“机动车”的基类。即基类可以

有基类,派生类可以有派生类。

1

辆大客车

动普通车

越野车

车辆类层次图

类名

类Person

的属性

表区

示服务ID,Name,Add,...

GetID,GetName,

ChlD,ChName....

例题6:类“课程”的表示

Course

CID,CName,Credit,Term,Note

GetID,GetName,GetCredit,GetNote

ChlD,ChName,ChCrediLChNote

类名,属性,服务的命名注意点

•标识符(即名字)要达义。

•要简明,短小,符合人的思维习惯。

•类名宜用名词或动名词,

属性名用名词或动名词,

服务名用动词或动名词。

封装(encapsulation)

封装就是把对象的属性和服务结合成一个独立的相

同单位,并尽可能隐蔽对象的内部细节,包含两个

含义:

◊把对象的全部属性和全部服务结合在一起,

形成一个不可分割的独立单位(即对象)。

◊信息隐蔽,即尽可能隐蔽对象的内部细节,

对外形成一个边界(或者说形成一道屏障),只保

留有限的对外接口使之与外部发生联系。

封装的原则在软件上的反映是:要求使对象以

外的部分不能随意存取对象的内部数据(属性),

从而有效的避免了外部错误对它的“交叉感染”,使

软件错误能够局部化,大大减少查错和排错的难度。

封装(encapsulation)

例:考虑一个仓库,外部只能通过

管理员获取物品。

价格表,物品,

仓库

属性帐单,电话,

抽象

等等

服提供物品,

务帐单等等

例:考虑类'帐户',其表示如下:

帐户\

帐户号,户主,身份证号,地址,

电话,密码,存款。

修改显示帐户号,户主,身份证号,

地址,电话,密码,存款。

问题的提出区I从现实世界的实例表明,

类的一些消息需要保护,

外界不能随意提取修改,

OOT的封装就提供这一

需求。

封装因把对象的属性和服务结

合成一个独立的单元,

并尽可能荫蔽对象的内

部细节。

封装的特点区I1.—个清楚的边界。

所有对象的成分都在

这个边界内。

7—个y寺口

.外部通过去个接口访

问对象的内部成员。

封装的优点区1.数据独立(如每件事

物都对应于一对象、

2,具有隐藏性和安全性

(如银行的帐户)

3.易于维护(由于数据

独立,易于发现问题)

封装的缺点区I需要更多的输入输出

函数。

继承(inheritance)

什么是继承区I•特殊类具有普通类的

所有特性和服务

•是类之间的一种关系

•是00T的要点之一

继承的特点区I

设A为基类,B为派生类。

1.共享性:派生类具有基类所有特征,

即:AuB

2.区别性:派生类不等于基类,即AWB

3.层次性:表示了类之间的关系

例9:车辆的继承关系

客车

非机动车

车辆卡车

机动车

轿车

例10:人类按职业划分的一种继承关系

学生工人教农

师民

究讲

生师

继承的优点区I1.减少原代码,

即代码可重用。

2.代码的相互独立性。

3.易于维护。

4.体现自然界之间

的关系。

消息(message)

什么是消息区消息是向对象发出的

服务请求

消息的组成区I1.对象标志

2.服务标志

3.输入信息

4.输出信息

例:“请你理那本书拿给我!”

对象标志:你

服务标志:把那本书拿给我

输入信息:那本书

输出信息:书给我

消息的执行流程

建-x

消结

息束

消息的作用

1.提供类之间的动态联系

2.对象通过消息对外提供服务

例:分析两个对象“打印机”和

“操作系统”之间的消息通,

温馨提示

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

评论

0/150

提交评论