面向对象程序设计的基本知识.pptx
《面向对象程序设计的基本知识.pptx》由会员分享,可在线阅读,更多相关《面向对象程序设计的基本知识.pptx(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章章 面向对象程序设计基本知识面向对象程序设计基本知识1.1 面向对象思想的由来面向对象思想的由来1.2 面向对象的基本概念面向对象的基本概念1.3 面向对象程序设计的特性面向对象程序设计的特性1.4 面向对象的程序设计语言面向对象的程序设计语言思考与练习第1页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 有如下编程问题:请计算出1999年5月10日到2006年3月8日期间一共有多少天?如何用如何用C C语言实现?语言实现?第2页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序
2、设计编程引例 算法描述如下:算法描述如下:(1)计算从1999 到2006 期间所有整年共有多少天;(2)计算从1999 年5 月10 日到年底(即12 月31 日)共有多少天;(3)计算从2006 年元旦到2006 年3 月8 日期间一共有多少天。第3页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 数据结构表示如下:数据结构表示如下:/封装日期信息public struct MyDatepublic int Year;/年public int Month;/月public int Day;/日第4页/共60页1.1 面向对象思想
3、的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 程序设计如下:程序设计如下:/计算两个日期之间的所有天数static int CalculateDaysOfTwoDate(MyDate beginDate,MyDate endDate)/第5页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 程序设计如下:程序设计如下:/计算两个日期之间的所有整年天数,不足一年的去掉static int CalculateDaysOfTwoYear(int beginYear,int endYear)/第6页/共60页
4、1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 程序设计如下:程序设计如下:/计算两个日期之间不足整年的天数static int CalculateDaysOfTwoMonth(MyDate beginDate,MyDate endDate)/第7页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 程序设计如下:程序设计如下:/根据年数判断其是否为闰年static bool IsLeapYear(int year)/第8页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.
5、1结构化程序设计编程引例结构化程序设计编程引例 程序设计如下:程序设计如下:第9页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.1结构化程序设计编程引例结构化程序设计编程引例 程序代码如下:程序代码如下:MyDate d1,d2;/起始日期和结束日期/1999年5月10日d1.Year=1999;d1.Month=5;d1.Day=10;/2006年3月8日d2.Year=2006;d2.Month=3;d2.Day=8;/计算结果int days=CalculateDaysOfTwoDate(d1,d2);第10页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.
6、1结构化程序设计编程引例结构化程序设计编程引例 小结:传统的结构化程序设计思想是以解决问题小结:传统的结构化程序设计思想是以解决问题的过程作为出发点,把程序定义为的过程作为出发点,把程序定义为“数据结构数据结构+算法算法”,采取自顶向下、逐步求精的,采取自顶向下、逐步求精的功能分解功能分解法,法,将整个程序结构划分成若干个功能上相对独立的将整个程序结构划分成若干个功能上相对独立的模块,每个模块都由逻辑上或功能上相关的若干模块,每个模块都由逻辑上或功能上相关的若干个函数构成,从而把一个大问题分解成若干个子个函数构成,从而把一个大问题分解成若干个子问题,每个子问题又被分解成更小的子问题,直问题,每
7、个子问题又被分解成更小的子问题,直到得到的子问题可以用一个函数来实现为止。到得到的子问题可以用一个函数来实现为止。编编程的基本单位是函数程的基本单位是函数,每个函数都完成整个程序,每个函数都完成整个程序的一个功能。的一个功能。第11页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.2 面向对象的思想面向对象的思想 随着计算机技术的发展,人们越来越希望能有随着计算机技术的发展,人们越来越希望能有一种通过与计算机进行一种通过与计算机进行直接交互直接交互而反映人类解决而反映人类解决问题的问题的自然方法自然方法,传统的程序设计思想需要专门,传统的程序设计思想需要专门学习和长时间训练才能实
8、现,显然无法满足这一学习和长时间训练才能实现,显然无法满足这一要求。要求。“面向对象面向对象”是软件程序设计中的一种新思想,是软件程序设计中的一种新思想,它通过模拟人的思维方式,尽量实现将现实世界它通过模拟人的思维方式,尽量实现将现实世界中的事物直接映射到软件系统,使软件系统对现中的事物直接映射到软件系统,使软件系统对现实世界的直接模拟,从而使程序设计更加贴近现实世界的直接模拟,从而使程序设计更加贴近现实并且花费更小的精力。实并且花费更小的精力。第12页/共60页1.1 面向对象思想的由来面向对象思想的由来1.1.2面向对象的思想面向对象的思想 面向对象技术是计算机应用领域发展起来的新面向对象
9、技术是计算机应用领域发展起来的新生事物,它吸取了结构化程序设计中最为精华的生事物,它吸取了结构化程序设计中最为精华的部分,被认为是程序设计方法学方面的一场革命。部分,被认为是程序设计方法学方面的一场革命。返回返回第13页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类1.对象对象 现现实实世世界界中中的的对对象象是是我我们们认认识识世世界界的的基基本本单单元元,如如一一个个人人、一一辆辆车车、一一次次购购物物、一一次次演演出出等等。对对象象可可以以简简单单也也可可以以复复杂杂,复复杂杂对对象象一一般般由由若若干干个个简简单单对对象象组组成成。作作为为
10、现现实实世世界界中中的的实实体体,对对象象具具有以下特性:有以下特性:有一个用于与其它对象相区别的名字有一个用于与其它对象相区别的名字具有某些属性或状态特征具有某些属性或状态特征有一组操作,每个操作决定对象的一种行为有一组操作,每个操作决定对象的一种行为对象之间以消息传递的方式相互通信对象之间以消息传递的方式相互通信第14页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类1.对象对象 面面向向对对象象中中的的对对象象是是由由描描述述自自身身状状态态特特征征(属属性性)的的数数据据及及定定义义在在该该数数据据上上可可对对这这些些状状态态施施加加的的一一
11、组组操操作作组组成成的的实实体体,是是数数据据单单元元和和过过程程单单元元的集合体。的集合体。第15页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类1.对象对象 在在计计算算机机中中,对对象象可可看看成成是是存存储储器器中中一一个个可可标标识识的的区区域域,是是一一个个数数值值的的集集合合。在在面面向向对对象象程程序序设设计计中中,对对象象用用一一个个运运行行中中的的存存储储单单元元来来存存放放,其其状状态态用用属属性性的的值值来来表表征征,可可以以是是初初等等数数据据类类型型(整整型型、实实型型、字字符符型型等等),也也可可以以是是用用户户自自定
12、定义义的的数数据据类类型型(结结构构、枚枚举举等等),还还可可以以是是对对象象(如如“人人”这这个个对对象象,其其状状态态属属性性“家家庭庭成成员员”可能是另一个对象)。可能是另一个对象)。第16页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类1.对象对象 对对象象作作为为构构成成和和支支撑撑整整个个面面向向对对象象程程序序设设计计最最重重要要的的细细胞胞和和基基石石,具具有有模模块块独独立立性性(一一个个对对象象是是一一个个独独立立存存在在的的模模块块)、动动态态连连接接性性(通通过过消消息息激激活活机机制制使使对对象象之之间间动动态态联联系系)
13、和和易易维维护护性性(对对象象的的功功能能和和实实现现细细节节局局限限于于模模块块内内部部)三三个个特征。特征。现现实实世世界界中中一一切切事事物物都都是是对对象象,在在解解决决实实际际问问题题时时,首首先先要要分分析析对对象象,这这直直接接影影响响到到面面向向对对象象程序设计的质量。程序设计的质量。第17页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类2.消息消息 现现实实世世界界中中的的对对象象存存在在着着各各种种各各样样的的联联系系,同同样样,面面向向对对象象程程序序设设计计中中的的对对象象之之间间也也存存在在着着联联系系,它它们们是是通通过
14、过消消息息传传递递来来进进行行的的,对对象象只只有有在在收收到到消消息息时时才才被被激激活活,被被激激活活后后的的对对象象才才能能按按照照要求操作相关数据完成消息的传送。要求操作相关数据完成消息的传送。第18页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类2.消息消息 例例如如学学生生对对象象请请求求教教师师对对象象辅辅导导,学学生生对对象象向向教教师师对对象象发发出出消消息息,教教师师对对象象接接收收到到这这个个消消息息后后才决定做什么辅导并执行辅导。才决定做什么辅导并执行辅导。所以说:所以说:消消息息是是对对象象之之间间相相互互请请求求或或相相
15、互互协协作作的的途途径径,是是要要求求某某个个对对象象执执行行其其中中某某个个功功能能操操作作的的规规格格说说明明。第19页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类2.消息消息消息具有如下性质:消息具有如下性质:(1)同同一一对对象象可可以以接接受受不不同同形形式式的的多多个个消消息息并并做做出出不同的响应;不同的响应;(2)相相同同形形式式的的消消息息可可以以传传递递给给不不同同的的对对象象,做做出出的响应可以是不同的;的响应可以是不同的;(3)消消息息的的发发送送可可以以不不考考虑虑具具体体的的接接受受者者,对对象象可可以相应,也可以不响
16、应。以相应,也可以不响应。第20页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类2.消息消息 在在面面向向对对象象程程序序设设计计中中,消消息息分分为为公公有有消消息息和和私私有有消消息息两两类类。若若有有一一批批消消息息同同属属于于一一个个对对象象,则则其其中中由由外外界界对对象象直直接接向向其其发发送送的的部部分分称称为为公公有有消息消息,由它,由它自己向本身发送自己向本身发送的部分称为的部分称为私有消息私有消息。如如在在下下面面的的人人员员对对象象类类中中,消消息息print()为为公公有有消消息息,而而printName()、printag
17、e()、printadd()、printsex()为私有消息。为私有消息。第21页/共60页第22页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类3.类类 类类是是一一组组客客观观对对象象的的抽抽象象表表示示,它它将将该该组组对对象象所所共共同同具具有有的的结结构构特特征征(即即状状态态属属性性)和和行行为为特特征征(即即操操作作)集集中中起起来来加加以以描描述述和和说说明明,以以表表明明该组对象的性质和能力。该组对象的性质和能力。类类和和对对象象是是抽抽象象和和具具体体的的关关系系,组组成成类类的的所所有有对对象象均均为为该该类类的的实实例例,因
18、因此此,类类是是多多个个实实例例的的综综合抽象,实例是类的个体实物合抽象,实例是类的个体实物。第23页/共60页第24页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类3.类类 类类没没有有具具体体的的值值,也也没没有有具具体体的的操操作作。当当给给类类中中的的属属性性和和行行为为赋赋予予实实际际的的值值以以后后,就就得得到到了了类类的的一一个个对对象象。在在面面向向对对象象程程序序设设计计中中,类类是是避避免免重重复复编编码码的的有有效效手手段段,它它只只出出现现在在源源程程序序代代码码中中,不不会会出出现现在在正正在在内内存存运运行行的的程程序序
19、中中。换换句句话话说说,类类只只在在编编译译时时存存在在,为为对对象象的的创创建建提提供供样样板板,不不占占据据内内存存空空间间。在在内内存存中中运运行行的的是是类类的的对对象象,它它在内存中分配空间并完成计算任务。在内存中分配空间并完成计算任务。第25页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.1对象、消息和类对象、消息和类3.类类 类类是是面面向向对对象象系系统统中中最最重重要要的的概概念念,面面向向对对象象程程序序设设计计中中的的所所有有操操作作都都归归结结为为对对类类的的操操作作,类类形形成成了了一一个个具具有有特特定定功功能能的的模模块块和和一一种种代代码码共共享
20、享的的手手段段以以方方便便地地建建立立和使用所需要的任何类型。和使用所需要的任何类型。返回返回第26页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.2字段、属性、方法和事件字段、属性、方法和事件 类由字段、属性、方法和事件组成。类由字段、属性、方法和事件组成。1.字段和属性字段和属性 字字段段和和属属性性是是指指对对象象所所具具有有的的有有意意义义的的状状态态,表表示示对对象象包包含含的的信信息息,用用以以访访问问对对象象中中包包含含的的数数据。据。字字段段类类似似于于变变量量,主主要要用用于于类类内内直直接接读读取取或或设设置置。例例如如,有有一一个个名名为为“Car”的的对
21、对象象,则则可可在在“Color”字段中存储其颜色。字段中存储其颜色。第27页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.2字段、属性、方法和事件字段、属性、方法和事件1.字段和属性字段和属性 属属性性是是对对字字段段的的简简单单包包装装,主主要要用用于于类类外外的的访访问问,其其读读取取和和设设置置是是通通过过使使用用property Get和和property Set过过程程来来实实现现的的。在在没没有有属属性性语语法法的的语言里,通常是使用对象方法来访问属性。语言里,通常是使用对象方法来访问属性。第28页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.2字
22、段、属性、方法和事件字段、属性、方法和事件2.方法方法 方方法法表表示示对对象象可可执执行行的的操操作作,是是对对象象操操作作过过程程的的算算法法,用用于于访访问问对对象象的的功功能能,通通过过向向类类中中添添加加函函 数数 来来 定定 义义。例例 如如,“Car”对对 象象 可可 以以 有有“StartEngine”、“Drive”和和“Stop”方法。方法。消消息息传传递递的的实实质质是是方方法法的的调调用用,对对象象通通过过调调用用某个方法执行对数据的处理来完成消息的传递。某个方法执行对数据的处理来完成消息的传递。第29页/共60页1.2 面向对象的基本概念面向对象的基本概念1.2.2字
23、段、属性、方法和事件字段、属性、方法和事件3.事件事件 事事件件是是对对象象从从其其它它对对象象或或应应用用程程序序接接收收的的通通知知,或或者者是是对对象象传传输输到到其其它它对对象象或或应应用用程程序序的的通通知知,它它使使对对象象得得以以在在每每当当特特定定情情况况发发生生时时执执行行操操作作。例例 如如,“Car”类类 的的“Check_Engine”事事 件件 等等。对对于于Windows操操作作系系统统来来说说,事事件件可可来来自自其其它它对象、应用程序或用户输入。对象、应用程序或用户输入。返回返回第30页/共60页1.3 面向对象程序设计的特性面向对象程序设计的特性1.封装性封装
24、性 所所谓谓封封装装,就就是是把把一一个个事事物物包包装装起起来来,使使外外界界不不了了解解它它内内部部的的具具体体情情况况。在在面面向向对对象象的的程程序序设设计计中中,封封装装是是指指将将相相关关的的数数据据和和代代码码结结合合成成一一个个有有机机整整体体,形形成成数数据据和和操操作作代代码码的的集集合合,对对外外隐隐蔽蔽大大部部分分实实现现细细节节,以以达达到到对对数数据据访访问问权权的的合合理理控制。控制。封封装装使使程程序序中中各各部部分分之之间间的的相相互互联联系系达达到到最最小小,提提高高了了程程序序的的安安全全性性,简简化化了了程程序序代代码码的的编编写写工工作,是面向对象程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 基本知识
限制150内