《面向对象程序设计》教案.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《面向对象程序设计》教案.doc》由用户(2023DOC)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 教案
- 资源描述:
-
1、 教 案分 院 (部) 信息学院 教 研 室 计算机科学与技术课 程 名 称 面向对象程序设计教 师 姓 名 金淑娟 职 称 讲 师 使 用 教 材 C+语言程序设计 教 务 处 制授课内容:第一章 面向对象程序设计概念授课时数6教学目的及要求:了解:程序设计方法的发展过程,面向对象语言的特点。掌握:面向对象的概念,面向对象的程序开发过程。教学基本内容:程序设计方法的发展过程;面向对象程序设计的基本思想及概念,面向对象程序设计的要点及开发过程。重点及难点:面向对象的概念,面向对象的程序开发过程。教学方法:讲授法 讨论法 自学指导法 其他 教学手段:多媒体 实物 模型 挂图 音像 其他板书设计:
2、讨论、思考题、作业:1 叙述面向对象基本思想的特点。2 叙述面向对象的程序设计方法与传统面向过程的程序设计方法有何不同。3 什么是类,什么是对象,类和对象是怎样的关系?4 抽象包括哪两方面的含义?5 什么是封装,它具有怎样的特点?6 什么是多态?多态的实现方式及作用有哪些?7 什么叫对象的封装性?什么叫信息隐藏?C+语言是怎样实现信息隐藏的?8 什么叫继承?什么叫派生?9 什么叫多态性?多态性主要有哪几种?10. 什么叫运行时的多态性?C+语言中是怎样实现运行时的多态性的?参考资料(含参考书目、文献等):1、Harvey M.Deitel及Paul James Deitel著,C+大学教程(第
3、三版),电子工业出版社。2、刘正林,面向对象程序设计,华中科技大学出版社。3、周生炳等,面向对象程序设计,清华大学出版社。4、揣锦华,面向对象程序设计与VC+实践,西安电子科技大学出版社。5、王育坚编,面向对象编程教程, 清华大学出版社。6、王萍编著,C+面向对象程序设计, 清华大学出版社出版。7、徐孝凯等编,面向对象程序设计实验, 中央广播电视大学出版社出版。 第一节 面向对象的方法一、面向对象的语言出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。特点:是高级语言。将客观事物看作具有属性和行为的对象。通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承与多态实现代
4、码重用。优点:使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。二、程序设计方法的发展历程1面向过程的程序设计方法程序的目的:用于数学计算。主要工作:设计求解问题的过程。缺点:对于庞大、复杂的程序难以开发和维护。2面向过程的结构化程序设计方法设计思路:自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构:按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。优点:有效地将一个较复杂的程序系统设计任
5、务分解成许多易于控制和处理的子任务,便于开发和维护。缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件。具体有以下几点: 把数据和处理数据的过程分离为相互独立的实体。 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。 图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。3面向对象的方法 方法: 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通讯。优点:
6、 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。 三、面向对象的基本概念1一般意义上的对象: 是现实世界中一个实际存在的事物。 可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 是构成世界的一个独立单位,具有: 静态特征-可以用某种数据来描述 动态特征-对象所表现的行为或具有的功能2 面向对象方法中的对象: 是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。 属性-用来描述对象静态特征的数据项。 行为-用来描述对象动态特征的操
7、作序列。3分类所依据的原则抽象 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。例如,石头、树木、汽车、分类人类通常的思维方法。 房屋等都是人们在长期的生产和生活实践中抽象出的概念。4面向对象方法中的类 具有相同属性和服务的一组对象的集合。 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例。5 面向对象方法中的封装 把对象的属性和服务结合成一个独立的系统单元。 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏
8、障),只保留有限的对外接口使之与外部发生联系。6面向对象方法中的继承 继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如:将轮船作为一个一般类,客轮便是一个特殊类。7 面向对象方法中的多态性 多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。例如:数的加法-实数的加法-复数的加法第二节 面向对象的软件开发面向对象的软件工程(软件开发)是面向对象方法在软件工程领域的全面应用。它包括
9、: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护(OOSM)一、系统分析 系统分析阶段应该扼要精确地抽象出系统必须做什么,但是不关心如何去实现。 面向对象的系统分析,直接用问题域中客观存在的事物建立模型中的对象,对单个事物及事物之间的关系,都保留他们的原貌,不做转换,也不打破原有界限而重新组合,因此能够很好地映射客观事物。二、设计 针对系统的一个具体实现运用面向对象的方法。其中包括两方面的工作: 把OOA模型直接搬到OOD,作为OOD的一部分。 针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部
10、分。 三、编程OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重要阶段。四、测试 测试的任务是发现软件中的错误。 在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更准确的发现程序错误并提高测试效率。 五、维护将软件交付使用后,工作并没有完结,还要根据软件的运行情况和用户需求,不 断改进系统。使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率。 授课内容:第二章 类与对象授课时数18教学目的及要求:掌握:类定义的方法和存取级别。 掌握
11、:类的成员变量和成员函数的定义和使用,以及对象的定义。 了解:友元函数和友元类。 掌握:构造函数和析构函数。 掌握:静态类成员变量和成员函数的定义和使用方法。 掌握:内联函数的定义和使用方法。 掌握:对象指针及对象引用的使用。 了解:容器类的定义。 掌握:在函数中对象传递的机制。教学基本内容: 类的声明,对象的定义,构造函数、析构函数,对象指针,对象引用,静态成员,友元,标识符的作用域,对象数组,成员对象,对象的存储类等。重点与难点: 类及类对象的定义,构造函数、析构函数的定义,对象指针及对象引用的使用,容器类的定义。教学方法:讲授法 讨论法 自学指导法 其他 教学手段:多媒体 实物 模型 挂
12、图 音像 其他板书设计:讨论、思考题:1. 什么是类,什么是对象,类和对象是怎样的关系?2叙述静态成员和一般成员的区别。3什么叫友元? 什么叫友元类?什么叫友元函数?什么叫友元成员函数? 4叙述友元与类的封装性之间的关系。5友元方法有什么优点?有什么缺点?作业:见书中第四章练习参考资料(含参考书目、文献等):1、Harvey M.Deitel及Paul James Deitel著,C+大学教程(第三版),电子工业出版社。2、刘正林,面向对象程序设计,华中科技大学出版社。3、周生炳等,面向对象程序设计,清华大学出版社。4、揣锦华,面向对象程序设计与VC+实践,西安电子科技大学出版社。5、王育坚编
13、,面向对象编程教程, 清华大学出版社。6、王萍编著,C+面向对象程序设计, 清华大学出版社出版。7、徐孝凯等编,面向对象程序设计实验, 中央广播电视大学出版社出版。第一节 C+的面向对象的概念一、抽象的概念抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。 先注意问题的本质及描述,其次是实现过程或细节。 数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。 代码抽象:描述某类对象的共有的行为特征或具有的功能。 抽象的实现:通过类的声明。二、抽象实例1日期 抽象实例 数据抽象:int Year, int Month, int Day 代码抽象:SetDate()
14、, /设置年、月、日IsLeapYear(),/计算某年是否为闰年ShowDate(),/显示年、月、日的值抽象实例日期类class Datepublic: void SetDate(int y, int m, int d); int IsLeapDate();void ShowDate();private: int Year,Month,Day; 2钟表 抽象实例-钟表 数据抽象:int Hour, int Minute, int Second代码抽象:SetTime(), ShowTime()抽象实例钟表类class Clock public: void SetTime(int NewH,
15、 int New, int NewS); void ShowTime();private: int Hour,Minute,Second; 3抽象实例人数据抽象:char *name,char *gender,int age,int id代码抽象:生物属性角度:GetCloth(), Eat(), Step(),社会属性角度:Work(), Promote() ,二、封装将抽象出的数据成员、代码成员相结合,将它们视为一个整体。 目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。 实现封装:类声明中的实例:class Clockpu
16、blic: void SetTime(int NewH, int NewM, int NewS); void ShowTime();private:int Hour,Minute,Second;三、继承与派生是C+中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。实现:声明派生类第七章四、多态性 多态:同一名称,不同的功能实现方式。 目的:达到行为标识统一,减少程序中标识符的个数。 实现:重载函数和虚函数第八章五、c+中的类 类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。 利用类可以实现数据的
17、封装、隐藏、继承与派生。 利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。第二节 类的定义格式一、类的声明类是一种用户自定义类型,声明形式:class 类名称 public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员;(1)类的定义格式分为说明部分和实现部分,说明部分用来描述该类中的成员,包括数据成员和成员函数,成员函数使用来对数据成员进行操作的即“方法”,实现部分用来定义各种成员函数,描述这些成员函数如何实现队数据成员的操作。(2)类由类头和类体两部分组成。类头由关键字class和类名组成,类名是由用户定义的标识符,类头用来向便宜系统声明
18、定义了一个新的class类型;而类体是对类的组织形式进行具体的描述,它由访问限制符(private,protected,public)、数据成员和成员函数组成,整个类体用一对大括号括起来,完整地表达对类的描述。(3)class允许隐藏内部成员,它依靠类定义中的3个访问限制符publicprivateprotected来确定隐藏的程度,它们将类体分成3 个大部分。(4)类的定义只是定义了某种类的组织形式,类似于结构体的定义,编译系统并不给class类型的每个数据成员分配具体的内存空间。二、类成员的访问控制3个访问限制符将类体分成3个大部分,每一部分都可以有数据成员和成员函数,也可以只有数据成员或
19、只有成员函数,但不同的访问限制符规定了该部分所具有的访问权限。1Public(公有类型的成员) 在关键字public后面声明,这一部分是透明的,它的数据成员和成员函数是开放的,即可以由本类的成员函数直接访问,也可以由任何外部函数来访问,它们是类与外部的接口。外部访问是通过“对象名.公有成员名”进行。2Private(私有类型的成员)在关键字private后面声明,这一部分象一个黑盒子,完全隐藏的。它只允许本类中的成员函数直接访问(既在成员函数体内直呼其名写出成员名),象日期类Date的SetDate( )成员函数体内,可以直接写“year=y;month=m,day=d;”等语句;而类外部的任
展开阅读全文