第7章面向对象的程序设计优秀课件.ppt
《第7章面向对象的程序设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《第7章面向对象的程序设计优秀课件.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章面向对象的程序设计章面向对象的程序设计第1页,本讲稿共67页第七章第七章 面向对象的程序设计面向对象的程序设计n n 面向对象程序设计(简称面向对象程序设计(简称OOP)技术最近几)技术最近几年在计算机领域得到了迅猛发展,它是程序设计年在计算机领域得到了迅猛发展,它是程序设计方法的一场革命。方法的一场革命。n n 与传统的结构化程序设计(面向过程程序设计)与传统的结构化程序设计(面向过程程序设计)相比,它具有许多优点,其中最主要的是,面向相比,它具有许多优点,其中最主要的是,面向对象程序设计是按照人类认识世界的方法和思路对象程序设计是按照人类认识世界的方法和思路方式来解决问题。方式来解
2、决问题。n n 面向对象程序设计试图使程序设计环境适合于面向对象程序设计试图使程序设计环境适合于现实世界的问题,而不是象过程程序设计所要求现实世界的问题,而不是象过程程序设计所要求的使现实世界的问题适合于程序设计语言。的使现实世界的问题适合于程序设计语言。第2页,本讲稿共67页.面向对象程序设计与过程化程序设计的比较面向对象程序设计与过程化程序设计的比较n n .过程化过程化过程化过程化(结构化结构化结构化结构化)程序设计及其优缺点程序设计及其优缺点程序设计及其优缺点程序设计及其优缺点(1)(1)n n 结构化程序设计的设计方法,是将程序结构按功能划分成结构化程序设计的设计方法,是将程序结构按
3、功能划分成结构化程序设计的设计方法,是将程序结构按功能划分成结构化程序设计的设计方法,是将程序结构按功能划分成若干基本模块,这些模块形成一个树形结构,自顶向下,逐若干基本模块,这些模块形成一个树形结构,自顶向下,逐若干基本模块,这些模块形成一个树形结构,自顶向下,逐若干基本模块,这些模块形成一个树形结构,自顶向下,逐步求精。程序设计时,使各模块之间的关系相对紧密。步求精。程序设计时,使各模块之间的关系相对紧密。步求精。程序设计时,使各模块之间的关系相对紧密。步求精。程序设计时,使各模块之间的关系相对紧密。n n 每一模块内部均由顺序、选择、和循环三种基本结构组成,每一模块内部均由顺序、选择、和
4、循环三种基本结构组成,每一模块内部均由顺序、选择、和循环三种基本结构组成,每一模块内部均由顺序、选择、和循环三种基本结构组成,其模块化实现的具体方法是使用了过程(子程序)。其模块化实现的具体方法是使用了过程(子程序)。其模块化实现的具体方法是使用了过程(子程序)。其模块化实现的具体方法是使用了过程(子程序)。n n 这样,一个较复杂的系统按功能分解成许多易于控制这样,一个较复杂的系统按功能分解成许多易于控制这样,一个较复杂的系统按功能分解成许多易于控制这样,一个较复杂的系统按功能分解成许多易于控制和处理的子系统、子任务,这些子系统、子任务都是可和处理的子系统、子任务,这些子系统、子任务都是可和
5、处理的子系统、子任务,这些子系统、子任务都是可和处理的子系统、子任务,这些子系统、子任务都是可独立编程实现的子程序模块,而这些子程序均由分级的独立编程实现的子程序模块,而这些子程序均由分级的独立编程实现的子程序模块,而这些子程序均由分级的独立编程实现的子程序模块,而这些子程序均由分级的用户界面菜单实现调用。用户界面菜单实现调用。用户界面菜单实现调用。用户界面菜单实现调用。第3页,本讲稿共67页.过程化过程化(结构化结构化)程序设计及其优缺点程序设计及其优缺点(2)n n 在大型软件系统设计中,由于软件系统本身的复杂性,在大型软件系统设计中,由于软件系统本身的复杂性,在大型软件系统设计中,由于软
6、件系统本身的复杂性,在大型软件系统设计中,由于软件系统本身的复杂性,要求必须许多人通力合作,采用工程化的方法进行开发和要求必须许多人通力合作,采用工程化的方法进行开发和要求必须许多人通力合作,采用工程化的方法进行开发和要求必须许多人通力合作,采用工程化的方法进行开发和管理,这也对程序设计语言和程序设计方法提出了更高的管理,这也对程序设计语言和程序设计方法提出了更高的管理,这也对程序设计语言和程序设计方法提出了更高的管理,这也对程序设计语言和程序设计方法提出了更高的要求。要求。要求。要求。n n 通过使用结构化程序设计方法,可以对整个任务进行通过使用结构化程序设计方法,可以对整个任务进行通过使用
7、结构化程序设计方法,可以对整个任务进行通过使用结构化程序设计方法,可以对整个任务进行清晰严格的划分,使每个程序员能明确了解自己的工作清晰严格的划分,使每个程序员能明确了解自己的工作清晰严格的划分,使每个程序员能明确了解自己的工作清晰严格的划分,使每个程序员能明确了解自己的工作任务以及与他人的接口。任务以及与他人的接口。任务以及与他人的接口。任务以及与他人的接口。n n 每个程序员可以独立地设计调试自己负责的模块,最终各每个程序员可以独立地设计调试自己负责的模块,最终各每个程序员可以独立地设计调试自己负责的模块,最终各每个程序员可以独立地设计调试自己负责的模块,最终各模块也能够顺利地集成到整个系
8、统中去。模块也能够顺利地集成到整个系统中去。模块也能够顺利地集成到整个系统中去。模块也能够顺利地集成到整个系统中去。n n 结构化程序设计方法,由于模块之间逻辑结构清晰,功结构化程序设计方法,由于模块之间逻辑结构清晰,功结构化程序设计方法,由于模块之间逻辑结构清晰,功结构化程序设计方法,由于模块之间逻辑结构清晰,功能相对独立,满足了大型软件系统易维护性和可读性的要能相对独立,满足了大型软件系统易维护性和可读性的要能相对独立,满足了大型软件系统易维护性和可读性的要能相对独立,满足了大型软件系统易维护性和可读性的要求。求。求。求。n n 因此,结构化程序设计能够较好地满足大型软件系统的因此,结构化
9、程序设计能够较好地满足大型软件系统的因此,结构化程序设计能够较好地满足大型软件系统的因此,结构化程序设计能够较好地满足大型软件系统的设计要求,是现代软件工程的基础。设计要求,是现代软件工程的基础。设计要求,是现代软件工程的基础。设计要求,是现代软件工程的基础。第4页,本讲稿共67页.过程化过程化(结构化结构化)程序设计及其优缺点程序设计及其优缺点(3)n n尽管结构化程序设计具有许多优点,但它仍然是一种面向数据和尽管结构化程序设计具有许多优点,但它仍然是一种面向数据和尽管结构化程序设计具有许多优点,但它仍然是一种面向数据和尽管结构化程序设计具有许多优点,但它仍然是一种面向数据和过程的设计方法,
10、它把数据和过程分离为相互独立的实体。过程的设计方法,它把数据和过程分离为相互独立的实体。过程的设计方法,它把数据和过程分离为相互独立的实体。过程的设计方法,它把数据和过程分离为相互独立的实体。n n程序员在编程时必须要时刻考虑所要处理的数据格式,程序员在编程时必须要时刻考虑所要处理的数据格式,程序员在编程时必须要时刻考虑所要处理的数据格式,程序员在编程时必须要时刻考虑所要处理的数据格式,对于不同的数据格式,即使要做同样的处理或对相同的对于不同的数据格式,即使要做同样的处理或对相同的对于不同的数据格式,即使要做同样的处理或对相同的对于不同的数据格式,即使要做同样的处理或对相同的数据格式要做不同的
11、处理,都需要编写不同的程序,因数据格式要做不同的处理,都需要编写不同的程序,因数据格式要做不同的处理,都需要编写不同的程序,因数据格式要做不同的处理,都需要编写不同的程序,因此重用性不够好。此重用性不够好。此重用性不够好。此重用性不够好。n n 另一方面,当数据和过程相互独立时,总存在用错误的另一方面,当数据和过程相互独立时,总存在用错误的另一方面,当数据和过程相互独立时,总存在用错误的另一方面,当数据和过程相互独立时,总存在用错误的数据调用正确程序模块,或用正确的数据调用错误程序模数据调用正确程序模块,或用正确的数据调用错误程序模数据调用正确程序模块,或用正确的数据调用错误程序模数据调用正确
12、程序模块,或用正确的数据调用错误程序模块的可能性。块的可能性。块的可能性。块的可能性。n n 因此,要使数据与程序始终保持相容等问题,结构化程序因此,要使数据与程序始终保持相容等问题,结构化程序因此,要使数据与程序始终保持相容等问题,结构化程序因此,要使数据与程序始终保持相容等问题,结构化程序设计方法本身是无法解决的,这可借助于新一代设计方法设计方法本身是无法解决的,这可借助于新一代设计方法设计方法本身是无法解决的,这可借助于新一代设计方法设计方法本身是无法解决的,这可借助于新一代设计方法面向对象的程序设计方法。面向对象的程序设计方法。面向对象的程序设计方法。面向对象的程序设计方法。第5页,本
13、讲稿共67页.面向对象程序设计及其优越性面向对象程序设计及其优越性(1)n n 面向对象程序设计将数据及对数据的操作融为面向对象程序设计将数据及对数据的操作融为一体,作为一个相互依存、不可分割的整体来处一体,作为一个相互依存、不可分割的整体来处理。它采用数据抽象和信息隐藏技术,将对象及理。它采用数据抽象和信息隐藏技术,将对象及对象的操作抽象成一种新的数据类型对象的操作抽象成一种新的数据类型类,并类,并且考虑到不同对象之间的联系和对象类的重用性。且考虑到不同对象之间的联系和对象类的重用性。n n 面向对象程序设计所追求的目标是将现实世界面向对象程序设计所追求的目标是将现实世界的问题求解尽可能简单
14、化,采用符合人类处理问的问题求解尽可能简单化,采用符合人类处理问题的思维方式。题的思维方式。n n 它用它用“对象对象”表现事物,用表现事物,用“事件事件”表示处理表示处理事物的动作,用事物的动作,用“方法方法”表现处理事物的过程,表现处理事物的过程,用用“消息消息”传递对象与对象之间的相互联系。传递对象与对象之间的相互联系。第6页,本讲稿共67页.面向对象程序设计及其优越性面向对象程序设计及其优越性(2)n n 面向对象程序设计时,不再是单纯地从代码的第一行一面向对象程序设计时,不再是单纯地从代码的第一行一面向对象程序设计时,不再是单纯地从代码的第一行一面向对象程序设计时,不再是单纯地从代码
15、的第一行一直编写到最后一行,而是考虑如何创建对象,利用对象来直编写到最后一行,而是考虑如何创建对象,利用对象来直编写到最后一行,而是考虑如何创建对象,利用对象来直编写到最后一行,而是考虑如何创建对象,利用对象来简化程序设计,并提供代码的可重用性。同时面向对象程简化程序设计,并提供代码的可重用性。同时面向对象程简化程序设计,并提供代码的可重用性。同时面向对象程简化程序设计,并提供代码的可重用性。同时面向对象程序设计也吸取了结构化程序设计的优点。序设计也吸取了结构化程序设计的优点。序设计也吸取了结构化程序设计的优点。序设计也吸取了结构化程序设计的优点。n n面向对象程序设计,可以支持先进的软件开发
16、策略:编写可重用面向对象程序设计,可以支持先进的软件开发策略:编写可重用面向对象程序设计,可以支持先进的软件开发策略:编写可重用面向对象程序设计,可以支持先进的软件开发策略:编写可重用代码,编写可维护的代码,共享代码,优化已有的代码等。代码,编写可维护的代码,共享代码,优化已有的代码等。代码,编写可维护的代码,共享代码,优化已有的代码等。代码,编写可维护的代码,共享代码,优化已有的代码等。n n有了高质量的可重用代码就能有效地降低软件的复杂性,有了高质量的可重用代码就能有效地降低软件的复杂性,有了高质量的可重用代码就能有效地降低软件的复杂性,有了高质量的可重用代码就能有效地降低软件的复杂性,提
17、高软件开发效率。开发者在设计软件时可以利用一些提高软件开发效率。开发者在设计软件时可以利用一些提高软件开发效率。开发者在设计软件时可以利用一些提高软件开发效率。开发者在设计软件时可以利用一些已经精心设计好并且经过测试的代码,这些可重用的代已经精心设计好并且经过测试的代码,这些可重用的代已经精心设计好并且经过测试的代码,这些可重用的代已经精心设计好并且经过测试的代码,这些可重用的代码被组织和存放在程序设计环境的类库中,使以后程序码被组织和存放在程序设计环境的类库中,使以后程序码被组织和存放在程序设计环境的类库中,使以后程序码被组织和存放在程序设计环境的类库中,使以后程序设计过程变得更简单。设计过
18、程变得更简单。设计过程变得更简单。设计过程变得更简单。第7页,本讲稿共67页.面向对象程序设计及其优越性面向对象程序设计及其优越性(3)n n 面向对象程序设计方法具有模块化、信息封装面向对象程序设计方法具有模块化、信息封装与隐藏、抽象性、继承性、多态性等特点,它又与隐藏、抽象性、继承性、多态性等特点,它又解决了大型软件系统设计与管理中所需的软件可解决了大型软件系统设计与管理中所需的软件可靠性、可重用性、可扩充性、可维护性及提高开靠性、可重用性、可扩充性、可维护性及提高开发效率等问题。因此,面向对象程序设计能够更发效率等问题。因此,面向对象程序设计能够更好地支持大型软件系统的开发。好地支持大型
19、软件系统的开发。n n Visual FoxPro不但仍然支持标准的结构化程不但仍然支持标准的结构化程序设计,而且在语言上还进行了扩展,提供了面序设计,而且在语言上还进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。向对象程序设计的强大功能和更大灵活性。第8页,本讲稿共67页.面向对象程序设计的基本概念面向对象程序设计的基本概念n n 面向对象技术为软件开发提供了一种新的思想,面向对象技术为软件开发提供了一种新的思想,引入了许多新的概念,这些概念是理解和使用面引入了许多新的概念,这些概念是理解和使用面向对象技术的基础和关键。向对象技术的基础和关键。n n .对象对象(Object)(1
20、)n n 现实世界的实体现实世界的实体事、物、概念等,都统称事、物、概念等,都统称为对象。在面向对象系统中一切成份都是对象,为对象。在面向对象系统中一切成份都是对象,大到整个系统、项目、数据库、表、表单,小到大到整个系统、项目、数据库、表、表单,小到窗口、控件都被视为对象。窗口、控件都被视为对象。n n 对象是一个逻辑实体,它包括数据和完成处理对象是一个逻辑实体,它包括数据和完成处理所需要的程序代码,是数据和代码的组合。所需要的程序代码,是数据和代码的组合。第9页,本讲稿共67页.对象对象(Object)(2)n n 在在在在VFPVFP中称对象的特征和数据为中称对象的特征和数据为中称对象的特
21、征和数据为中称对象的特征和数据为“属性属性属性属性”,称由对象识,称由对象识,称由对象识,称由对象识别的一个动作为别的一个动作为别的一个动作为别的一个动作为“事件事件事件事件”,称在对象上完成的操作过程,称在对象上完成的操作过程,称在对象上完成的操作过程,称在对象上完成的操作过程为为为为“方法方法方法方法”。n n 定义了对象的属性、事件和方法就决定对象的外观和定义了对象的属性、事件和方法就决定对象的外观和定义了对象的属性、事件和方法就决定对象的外观和定义了对象的属性、事件和方法就决定对象的外观和它的动作。因此,对象是属性、事件和方法的集合体,它的动作。因此,对象是属性、事件和方法的集合体,它
22、的动作。因此,对象是属性、事件和方法的集合体,它的动作。因此,对象是属性、事件和方法的集合体,用户通过属性、事件和方法来处理对象。用户通过属性、事件和方法来处理对象。用户通过属性、事件和方法来处理对象。用户通过属性、事件和方法来处理对象。n n 对象的基本特点是具有属性,用来描述自己的状态;有方对象的基本特点是具有属性,用来描述自己的状态;有方对象的基本特点是具有属性,用来描述自己的状态;有方对象的基本特点是具有属性,用来描述自己的状态;有方法,构成自己的行为;有可以识别的事件,响应外界的刺激。法,构成自己的行为;有可以识别的事件,响应外界的刺激。法,构成自己的行为;有可以识别的事件,响应外界
23、的刺激。法,构成自己的行为;有可以识别的事件,响应外界的刺激。n n以设计一个模拟收音机的程序为例,收音机有属性以设计一个模拟收音机的程序为例,收音机有属性以设计一个模拟收音机的程序为例,收音机有属性以设计一个模拟收音机的程序为例,收音机有属性“音音音音量量量量”,可以调节播放声音的大小;有方法,可以调节播放声音的大小;有方法,可以调节播放声音的大小;有方法,可以调节播放声音的大小;有方法“广播广播广播广播”,来,来,来,来完成播放功能;有事件完成播放功能;有事件完成播放功能;有事件完成播放功能;有事件“改变音量改变音量改变音量改变音量”,在改变音量时触,在改变音量时触,在改变音量时触,在改变
24、音量时触发。发。发。发。第10页,本讲稿共67页.对象对象(Object)(3)n n 又例如,一个视图窗口就是一个对象。视又例如,一个视图窗口就是一个对象。视图窗口的位置、大小、和颜色都是视图对象图窗口的位置、大小、和颜色都是视图对象的的“属性属性”;对视图的修改操作后,将数据;对视图的修改操作后,将数据替换源表,是视图对象的替换源表,是视图对象的“方法方法”;当数据;当数据修改完用鼠标点动关闭视图按钮,就产生关修改完用鼠标点动关闭视图按钮,就产生关闭视图的闭视图的“事件事件”,视图对象接收到这个关,视图对象接收到这个关闭动作(事件)后,就会执行另一方法程序闭动作(事件)后,就会执行另一方法
25、程序将视图数据发送回源表。将视图数据发送回源表。第11页,本讲稿共67页.对象对象(Object)(4)n n 综上所述,我们可以把对象初步理解为:综上所述,我们可以把对象初步理解为:对象是一个封装了属性、事件和方法的实体。对象是一个封装了属性、事件和方法的实体。uu 属性描述了对象的状态、特征;属性描述了对象的状态、特征;uu 每个对象都有可以识别和响应的事件,事每个对象都有可以识别和响应的事件,事件是一种定义好的特定动作,每当对对象进行件是一种定义好的特定动作,每当对对象进行某种操作时,就会引发该事件所对应的程序代某种操作时,就会引发该事件所对应的程序代码被执行;码被执行;uu 每当其他对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 优秀 课件
限制150内