面向对象程序设计及C++_第1页
面向对象程序设计及C++_第2页
面向对象程序设计及C++_第3页
面向对象程序设计及C++_第4页
面向对象程序设计及C++_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

¥

M

W

关于本课程的学习:

•教材和参考书

•课时计划表与学时

•教学要求

•考查形式

参考书:

•秦军等编著,《C++语言学习与实验指导》,

河海大学出版社,2006年2月

•郑莉编著,《C++语言程序设计》,清华大学出版社,

2002年7月

•钱能主编,《C++程序设计教程(第2版)》,

清华大学出版社,2005年9月

・徐春编著,面向对象程序设计习题与真题解析(本科),

中国水利水电出版社,2004年1月第一版。

课时计划表总学时30+18

章节课时

第一章第二章面向对象程序设计技术1

第三章C++概述2

第四章类与对象6

第五章派生类与继承类6

第六章多态性6

第七章模板3

第八章I/O流3

复习(机动)3

教学要求

•课前预习、课后复习

•大课、上机辅导课不得缺席

•作业按时完成

考查形式

•平时成绩共占60%。

•期末闭卷考试占40%分。

•课程总成绩为上述成绩之和

学习方法

・注重课堂学习

・勤于思考,多分析问题

•多上机实践,熟能生巧

•充分利用网络资源(校园网和互联网)

•多分析别人的程序,学习其编程的经验

•分析C++语言对C语言的改进与增强

•独立完成作业

1/1

我的联系方法:

区email:yandx@mail.usts.edu.cn

Tel:62260800

本章主要内容

・计算机程序设计语言的发展

•面向对象的方法

程序设计方法的发展历程

——面向过程的结构化程序设计方法

•设计思路:

♦:♦采用模块分解与功能抽象,自顶向下、分而治之。

•程序结构:

♦:♦按功能划分为若干个基本模块,形成一个树状结构。

♦:♦各模块间的关系尽可能简单,功能上相对独立;每

一模块内部均由顺序、选择、循环三种基本结构组成。

♦:♦其模块化实现的具体方法是使用子程序。

程序设计方法的发展历程

——面向过程的结构化程序设计方法

•优点:

有效地将一个较复杂的程序系统设计任务分解

成许多易于控制和处理的子任务,便于开发和维护。

・缺点:

可重用性差、数据安全性差

。把数据和处理数据的过程分离为相互独

立的实体,当数据结构改变时,所有相关

的处理过程都要进行相应的修改。

♦:♦每一种相对于老问题的新方法都要带来

额外的开销。

♦:♦难以开发图形界面的应用

。图形用户界面的应用,很难用过程来描

述和实现,开发和维护都很困难。

典型的结构化程序设计语言

一C语言

•优点:

““高效、灵活并能够对底层操作。

•缺点:

不具有支持代码重用的类的机制(致命缺点)

・应用场合:

适用于中小型的程序设计的编程。

二代码长度在1万行之下

程序设计方法的发展历程

.用想.——面向对象的程序设计方法

将数据及对数据的操作方法封装在一起,作为一个相

互依存、不可分离的整体一对象。

对同类型对象抽象出其共性,形成类。

类通过一个简单的外部接口,与外界发生关系。

♦:♦对象与对象之间通过消息进行通讯。

・优点:

。程序模块间的关系更简单,独立性、数据的安全性有保障。

。通过继承与多态性,可大大提高程序的可重用性,使得软件

的开发和维护都更为方便。

面向对象始藉就Ct)」

一般意义上的对象:

♦:♦是现实世界中一个实际存在的事物。

♦:♦有形(一台洗衣机)、无形的(一项计划)。

♦:♦是构成世界的一个独立单位,具有:

•静态特征:对象的状态;

如:人的姓名、性别等;代应

•动态特征:对象所表现的行为或具有的功能

如:人的吃饭、跑步等行

面向对象的基本概愈

——时豪(Object)_2

•面向对象方法中的对象:

♦:♦是系统中用来描述客观事物的一个实体,

它是用来构成系统的一个基本单位。

♦:♦对象由一组属性和一组行为构成。

•属性:用来描述对象静态特征的数据项。

•行为:用来描述对象动态特征的操作序列。

面向对象的基本概畲

----篓(Class)」

•分类一人类通常的思维方法

____________________

♦:♦忽略事物非本质特征,而从本质特征中找出事物

的共性,把具有共性的事物划分为一类,得出一

个抽象的概念。

♦:♦例如:石头、树木、汽车、房屋等都是人们在长

期生产和生活实践中抽象出的概念。

面向对象的基本.©ass)_2

•面向对象方法中的“类”:

♦:♦具有相同属性和服务的一组对象的集合

。为属于该类的全部对象提供了抽象的描述,

包括属性和行为两个主要部分。

。类与对象的关系:

•犹如模具与铸件之间的关系(举例P5,银行帐户)

•一个属于某类的对象称为该类的一个实例。

面向对象的基本概念

----封装(Encapsulation)

•定义:

•把对象的属性和服务结合成一个独立的系统单位。

•描述:

隐蔽对象内部细节,对外形成一道屏障,只保

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

•举例:

录音机。

面向对象的基本概念

----封装(Encapsulation)

对象是面向对象程序设计的基石,其特性:

(1)封装性:

私有元素、操作细节隐藏,提供对外接口,消息激活

(2)模块独立性:

对象为独立模块,变化不受外界干扰,不影响其它模块

(3)动态链接性:

对象通过消息传递机制将对象动态地联系在一起

(4)易维护性

对象功能被隐蔽,修改完善工作局限于内部,易维护

面向对象的基本概念

----继承(Inheritance)

•定义:

特殊类的对象拥有其一般类的全部非私有属性

与服务,称作特殊类对一般类的继承。

•音W-

对软件复用有着重要意义,能提高软件开发效率

・举例:(一般类和特殊类)。

1、P11哺乳动物、狗和柯利狗的关系

2、轮船和客轮的关系

面向对象的基本廨,

----多态性(Polymorphism)

•描述:1、同一名称,不同的功能实现方式;

2、不同对象收到相同消息时产生不同的行为。

,目的:达到行为标识统一,减少程序中标识符的个数。

・实现:编译时多态一重载函数、运行时多态一虚国数

•举例P14:

1、“挪开”的解释

2、对“移动”消息,“窗口”和“棋子”的不

同行为

典型的几种OOP语言

•Simula67:

20世纪60年代开发,鼻祖,主要用于仿真建模

•Smalltalk:

20世纪70年代开发,最有影响的OOP语言之一

•Eiffel:

理论上最有商业潜力的最好的。OP语言

•C++:

对C进行面向对象扩充,支持两种范型

•Java:

SUN公司20世纪90年代开发,广泛用于网络编程

典型的OOP语言

-----C++

•产生的时期:

1980年、贝尔实验室BjarneStroutStrupG

•主要的特性:

支持面向过程和面向对象两种程序设计方法

・应用场合:

适应大型复杂程序开发与维护

C++与C语言之比较

•本质差别:

/编程方法方面:

OC++一面向对象;C语言一面向过程。

/程序结构方面:

+C++—“对象+消息”模式;C—“数据+算法”

模式。

•兼容性:

/保持C的简洁、高效和接近汇编语言等特性。

/对源代码的支持和对系统库的支持。

•改良:

,改进了C中一些易产生错误的语法(见后文)。

■扩充:_______

C++语言

新抽象;封装

温馨提示

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

最新文档

评论

0/150

提交评论