面向对象程序设计概述精选文档.ppt
《面向对象程序设计概述精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计概述精选文档.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计概述本讲稿第一页,共九十五页学习体会学习体会 学习学习C+编程技术,必须了解和掌握编程技术,必须了解和掌握C+制订的制订的各种规则,然后应用这些规则写程序,也就容易各种规则,然后应用这些规则写程序,也就容易了。这与学习开车,首先要学习交通规则,然后了。这与学习开车,首先要学习交通规则,然后才能驱车上路的道理相同。但与才能驱车上路的道理相同。但与Basic和和C等语言等语言相比,相比,C+的规则确实多出许多,掌握它必须付出的规则确实多出许多,掌握它必须付出努力!然而一旦掌握了这些规则,对于学习掌握面努力!然而一旦掌握了这些规则,对于学习掌握面向对象编程技术,乃至于学习向对象编程技
2、术,乃至于学习JAVA,C#及及VB.net之之类的编程语言,也就容易多了。类的编程语言,也就容易多了。千里之行,始于足下!千里之行,始于足下!本讲稿第二页,共九十五页第第1章章 面向对象程序设计概述面向对象程序设计概述本章主要讲述:本章主要讲述:1.计算机程序语言的发展演变过程计算机程序语言的发展演变过程2.面向对象程序技术的基本特征面向对象程序技术的基本特征3.面向过程与面向对象程序设计面向过程与面向对象程序设计4.C+程序的结构及数据输入与输出程序的结构及数据输入与输出5.VC+实例编程实例编程本讲稿第三页,共九十五页1.1计算机程序设计语言的发展计算机程序设计语言的发展 本节主要介绍计
3、算机语言的发展过程:本节主要介绍计算机语言的发展过程:机器语言机器语言汇编语言汇编语言高级语言高级语言面向对象程序设计语言面向对象程序设计语言着重了解面向过程(即结构化程序)和着重了解面向过程(即结构化程序)和面向对象程序设计在程序结构、程序思面向对象程序设计在程序结构、程序思想上的差别。想上的差别。本讲稿第四页,共九十五页1.1.1 机器语言机器语言1.机器语言机器语言最早的程序设计语言,它由计算机能够识最早的程序设计语言,它由计算机能够识别的二进制指令系统构成。别的二进制指令系统构成。2.指令指令就是指计算机能够识别的命令,它们是一就是指计算机能够识别的命令,它们是一些由些由0和和1组合成
4、的二进制编码。组合成的二进制编码。3.指令系统指令系统计算机硬件系统能够识别的所有指令的集计算机硬件系统能够识别的所有指令的集合。合。本讲稿第五页,共九十五页1.1.2 汇编语言汇编语言1、汇编语言、汇编语言用用一一些些便便于于记记忆忆的的符符号号代代替替机机器器语语言言中中的的二二进进制制指指令令代代码码,就就将将二二进进制制的的机机器器语语言言转转换换成成了了一一种种便便于于记记忆忆的的符符号号语语言言,这这就就是是汇编语言。汇编语言。2、与机器语言的比较、与机器语言的比较汇编语言编程比机器语言简单。汇编语言编程比机器语言简单。同同机机器器语语言言一一样样,它它仍仍然然是是与与机机器器相相
5、关关的的。不不同同机机器器系系统统的的汇汇编编语语言言并并不不相相同同,要要在在不不同同硬硬件件系系统统(其其指指令令系系统统不不同同)的的计计算算机机上上完完成成相相同同的的任任务务,需需要要编编写写不不同同的的汇汇编编程程序。移植性不好。序。移植性不好。本讲稿第六页,共九十五页1.1.3高级语言高级语言1高级语言的概念及特征高级语言的概念及特征高高级级程程序序设设计计语语言言的的出出现现是是计计算算机机科科学学技技术术发发展展史史上上的的一一个个里程碑里程碑。高高级级语语言言屏屏蔽蔽了了与与机机器器硬硬件件相相关关的的细细节节,提提高高了了语语言言的的抽抽象象层层次次,程程序序员员可可以以
6、用用接接近近自自然然语语言言的的程程序序语语言言编编制制软软件件,然然后后通通过过编编译译器器转转换换成成机机器器可可执执行行的的代代码码(机机器器语语言言)。不不仅仅大大大大降降低低了了程程序序设设计计的的难难度度,而而且也使程序易被人们理解。且也使程序易被人们理解。高级语言程序的通用性和可移植性更高高级语言程序的通用性和可移植性更高与人们自然思维很接近,编程更容易、简单与人们自然思维很接近,编程更容易、简单本讲稿第七页,共九十五页q 高级语言高级语言 A=A+5q 机器语言机器语言 0101100000101q 汇编语言(助记符汇编语言(助记符)如用如用ADD表示加法、用表示加法、用SUB
7、表示减法表示减法高级语言高级语言 汇编语言汇编语言 机器语言机器语言 A=A+5 add A,5 0100100000101加 A 5人的语言机器的语言本讲稿第八页,共九十五页1.1.3高级语言高级语言2、结构化程序设计、结构化程序设计SP的基本内容的基本内容结构化程序设计语言是一种面向过程的程序设结构化程序设计语言是一种面向过程的程序设计语言计语言结构的类型结构的类型顺序、分支、循环顺序、分支、循环结构化程序设计思想结构化程序设计思想利用过程或函数来抽象和模拟客观现实利用过程或函数来抽象和模拟客观现实。本讲稿第九页,共九十五页1.1.3高级语言高级语言结构化程序设计方法结构化程序设计方法重点
8、放在如何实现细节过程方面,将数据重点放在如何实现细节过程方面,将数据与函数与函数(过程过程)分开。分开。形式:主模块形式:主模块+若干个子模块若干个子模块(如:(如:main()+子函数)。子函数)。特点:特点:自顶向下,逐步求精自顶向下,逐步求精功能分解。功能分解。缺点:效率低,是手工作坊式的编程。缺点:效率低,是手工作坊式的编程。本讲稿第十页,共九十五页1.1.3高级语言高级语言全局变量全局变量局部变量局部变量函数函数局部变量局部变量函数函数只有函数才能访问只有函数才能访问可被任何函数访问可被任何函数访问全局变量全局变量结构化程序结构化程序的问题的问题数据与算法分离,程序数据和操作数据数据
9、与算法分离,程序数据和操作数据的过程的过程(函数函数)是分离的。是分离的。本讲稿第十一页,共九十五页1.1.3高级语言高级语言struct Person char name10;char addr20;char phone11;Person p100;int n=0;void InputData().void SearchAddr(char*name)void SearchPhone(char*name)void PrintData()Void main()/调用前面编写的函数,完成通信录数据处理调用前面编写的函数,完成通信录数据处理结构化程序结构化程序的案例的案例个人通信录程序个人通信录程序
10、存放个人信息的数据结构定义全局数据定义操作数据的函数主函数控制程序流程本讲稿第十二页,共九十五页1.1.3高级语言高级语言由图可见由图可见,大型程序中,函数和数据之间存在数目巨大的大型程序中,函数和数据之间存在数目巨大的潜在连接关系潜在连接关系.若全局数据有所改动,若全局数据有所改动,可能会导致所有访问这个数据的全部函数的重写可能会导致所有访问这个数据的全部函数的重写结构化程序语言将客观世界的事物的属性被抽象成了数据,而行为则被抽象成了函数(过程),结构化程序语言将客观世界的事物的属性被抽象成了数据,而行为则被抽象成了函数(过程),但数据和函数是分离的。描述一个事物特征的数据能够被其他函数修改
11、(如全局数据可被任何但数据和函数是分离的。描述一个事物特征的数据能够被其他函数修改(如全局数据可被任何函数修改),这与客观事物的本来面目不相符合,因为一个事物的属性只有它自已才能改变。函数修改),这与客观事物的本来面目不相符合,因为一个事物的属性只有它自已才能改变。缺点:缺点:数据安全性不高,程序规模变大时,设计与维护非常困难。数据安全性不高,程序规模变大时,设计与维护非常困难。上述个人通信管理程序代表了结构化程序设计语言的编程方法上述个人通信管理程序代表了结构化程序设计语言的编程方法:先定义一些全局先定义一些全局性的数据结构性的数据结构,然后编写一些过程对这些数据结构进行操作然后编写一些过程
12、对这些数据结构进行操作,其模型如下其模型如下图所示图所示:全局数据全局数据全局数据函数函数函数函数本讲稿第十三页,共九十五页1.1.4面向对象程序设计语言面向对象程序设计语言q面向对象语言发展:面向对象语言发展:20世纪世纪60年代中期,年代中期,Simula 67语言语言面向对象语面向对象语言的鼻祖言的鼻祖,提出了,提出了对象对象、类类的概念,并支持类的的概念,并支持类的继承继承。20世纪世纪70年代中期,年代中期,Smalltalk语言语言最有影响最有影响的的面向对象语言之一,丰富了面向对象的概念。面向对象语言之一,丰富了面向对象的概念。20世纪世纪80年代中期后出现年代中期后出现C+、V
13、B、C#、PB、Java等等多种面向对象语言多种面向对象语言本讲稿第十四页,共九十五页1.1.4面向对象程序设计语言面向对象程序设计语言1、面向对象程序设计、面向对象程序设计OOP观点观点自然界是由各种各样的实体(对象)所组成自然界是由各种各样的实体(对象)所组成,每个对象都可以通过两个方面每个对象都可以通过两个方面来刻画:描述事物状态的来刻画:描述事物状态的数据数据和描述事物和描述事物行为的操作行为的操作,应该把它们结合成一,应该把它们结合成一个整体,代表一个客观事物,这个整体就是对象。在对象中,描述事物行为的操作个整体,代表一个客观事物,这个整体就是对象。在对象中,描述事物行为的操作被抽象
14、成了函数。被抽象成了函数。由此可以看出,一个对象由由此可以看出,一个对象由数据和函数数据和函数两部分构成。数据常被称为数据两部分构成。数据常被称为数据成员,函数则被称为成员函数。一成员,函数则被称为成员函数。一个对象的数据成员往往只能通过自身的个对象的数据成员往往只能通过自身的成员函数修改成员函数修改。2、程序设计方法:、程序设计方法:使用面向对象的观点来描述模仿并处理现实问题。使用面向对象的观点来描述模仿并处理现实问题。要求:高度概括、分类和抽象。要求:高度概括、分类和抽象。3、目的:、目的:让程序员理解和管理更大、更复杂的程序,实现软件设计的产业化。让程序员理解和管理更大、更复杂的程序,实
15、现软件设计的产业化。本讲稿第十五页,共九十五页1.1.4面向对象程序设计语言面向对象程序设计语言4、基本概念、基本概念对象对象客观存在的实体称为对象客观存在的实体称为对象属性属性描述对象的特征的数据描述对象的特征的数据行为行为对象自身的行为,对现实世界某些信息的响应对象自身的行为,对现实世界某些信息的响应对象之间通过传递消息相互影响对象之间通过传递消息相互影响属性行为行为对象由属性和行为对象由属性和行为构成构成本讲稿第十六页,共九十五页将客观事物的属性和行为抽象成数据和操作数据的函数,并把它们组合成一个不可将客观事物的属性和行为抽象成数据和操作数据的函数,并把它们组合成一个不可分割的整体(即对
16、象)的方法能够实现对客观世界的真实模拟,反映出世界的本来分割的整体(即对象)的方法能够实现对客观世界的真实模拟,反映出世界的本来面目。从客观世界中抽象出一个个对象,对象之间能够传递消息面目。从客观世界中抽象出一个个对象,对象之间能够传递消息,并通过特定的函数并通过特定的函数进行数据访问,禁止以任何未经允许的方式修改对象的数据,这就是进行数据访问,禁止以任何未经允许的方式修改对象的数据,这就是面向对象程序设计面向对象程序设计的基本模式。的基本模式。数据成员函数成员函数成员函数成员函数数据成员函数成员函数成员函数成员函数数据成员函数成员函数成员函数成员函数对象对象对象对象对象对象消息消息消息消息消
17、息消息5、面向对象基本模式、面向对象基本模式本讲稿第十七页,共九十五页1.1.4面向对象程序设计语言面向对象程序设计语言class Person private:char name10;char addr20;char phone11;public:void InitData()void SearchAddr(char*name);void SearchPhone(char*name);6、通信录程序在、通信录程序在C+中的类代码形式中的类代码形式在C+中,struct的功能被扩展为类class,在class中不仅可以定义数据,还可以定义函数。数据与函数构成了一个整体。其中的private和p
18、ublic是访问权限。本讲稿第十八页,共九十五页1.2 面向对象程序语言的特征面向对象程序语言的特征 本节主要介绍类与对象的基本概念,本节主要介绍类与对象的基本概念,以及面向对象程序设计的主要特征以及面向对象程序设计的主要特征(抽象、封装、继承和多态)(抽象、封装、继承和多态)本讲稿第十九页,共九十五页1.2.1 类与对象类与对象1.对象的基本概念对象的基本概念对象对象:用来描述客观事物的一个实体,它是构成系统用来描述客观事物的一个实体,它是构成系统的一个基本单元。一个对象具有一组属性和行为。的一个基本单元。一个对象具有一组属性和行为。实体对象实体对象 一台计算机一台计算机抽象对象抽象对象 一
19、项计划一项计划对象构成要素对象构成要素:1.1.对象标识符:是对象的名称,用来区别与其他对象。对象标识符:是对象的名称,用来区别与其他对象。2.2.属性属性:是用来描述对象静态特征的一个数据项。是用来描述对象静态特征的一个数据项。3.3.行为行为:是用来描述对象动态特征和行为的一个操作函数。是用来描述对象动态特征和行为的一个操作函数。本讲稿第二十页,共九十五页对象示例对象示例1:一个:一个“学生学生”对象的例子对象的例子对象名对象名:学生:学生对象的属性对象的属性:学号:学号:123456姓名:令狐冲姓名:令狐冲年龄:年龄:18专业:信管专业:信管行为行为修改学号、姓名、专业、年龄等等修改学号
20、、姓名、专业、年龄等等1.2.1 类与对象类与对象本讲稿第二十一页,共九十五页对象示例对象示例2:一个:一个“课程课程”对象的例子:对象的例子:对象名对象名:课程:课程对象的属性对象的属性:课程号:课程号:123456课程名:程序设计课程名:程序设计任课教师:莫名任课教师:莫名选课要求:选课要求:学时:学时:48行为行为获取并修改课程名、课程号、学时数、选课要求、获取并修改课程名、课程号、学时数、选课要求、任课教师等任课教师等1.2.1 类与对象类与对象本讲稿第二十二页,共九十五页2.类的基本概念类的基本概念类类:是具有相同属性和行为的一组对象的集合是具有相同属性和行为的一组对象的集合,它为属
21、于该类它为属于该类的全部对象提供统一的抽象描述的全部对象提供统一的抽象描述类和对象的关系类和对象的关系:对象是类的实例。:对象是类的实例。类类 对象对象 抽抽象定义象定义 实例实例 类类 对象举例对象举例学生学生 学生王强学生王强课程课程 C+程序设计程序设计类的实例类的实例用类定义的类变量,即对象。类是对多个特性相同的对象用类定义的类变量,即对象。类是对多个特性相同的对象实例的抽象,所以同一类的不同实例之间必有:实例的抽象,所以同一类的不同实例之间必有:相同的操作(行为)集合相同的操作(行为)集合相同的属性集合相同的属性集合不同的对象名,分配有不同的存储空间。不同的对象名,分配有不同的存储空
22、间。1.2.1 类与对象类与对象本讲稿第二十三页,共九十五页手机类与对象的关系手机类与对象的关系1.2.1 类与对象类与对象8810手机具有手机手机具有手机类的全部属性和行类的全部属性和行为,是手机类的一个为,是手机类的一个对象对象本讲稿第二十四页,共九十五页q类的确定与划分类的确定与划分类的确定类的确定对所遇到的对象进行分析、归纳,根据共对所遇到的对象进行分析、归纳,根据共同的特征来确定一个类。同的特征来确定一个类。类的确定的方法:类的确定的方法:判断是否有一个以上的实例判断是否有一个以上的实例判断类的实例中是否有绝对的不同点判断类的实例中是否有绝对的不同点类的划分不是绝对的,可以根据不同的
23、实际需要确定不同类的划分不是绝对的,可以根据不同的实际需要确定不同的类的类1.2.1 类与对象类与对象本讲稿第二十五页,共九十五页1.2.1 类与对象类与对象q类的描述类的描述类的描述类的描述不同的不同的OOP语言用不同的描述形式。在语言用不同的描述形式。在C+中用中用关键字关键字class来定义描述一个类。来定义描述一个类。class classnamepublic:/public members/friend function prototypesprivate:/private members;本讲稿第二十六页,共九十五页1.2.2抽象与封装抽象与封装1、抽象、抽象抽象(抽象(abstr
24、act)是指有意忽略问题的某些细节和与当前目标无关的方面,以)是指有意忽略问题的某些细节和与当前目标无关的方面,以便把问题的本质表达得更清楚。便把问题的本质表达得更清楚。把客观世界的事物划分成把客观世界的事物划分成类类的过程。的过程。抽象主要是抽象主要是针对实体的属性和行为针对实体的属性和行为。属性属性是指实体的性质和特征,在软是指实体的性质和特征,在软件中用数据来表示;而件中用数据来表示;而行为行为是指实体能够执行的所有动作,在软件中是指实体能够执行的所有动作,在软件中用一个操作或函数来实现用一个操作或函数来实现。要用软件对象组件来描述某个物理对象的全部属性和行为是不可能的。要用软件对象组件
25、来描述某个物理对象的全部属性和行为是不可能的。这就要求采用这就要求采用抽象的方法针对某个具体的应用抽象的方法针对某个具体的应用(比如企业员工工资管(比如企业员工工资管理系统)理系统)提取提取对象与具体应用相关的对象与具体应用相关的属性和行为属性和行为加以描述。加以描述。本讲稿第二十七页,共九十五页1.2.2抽象与封装抽象与封装现实世界现实世界企业员工企业员工抽象抽象属性:属性:工作编号、姓名、工作编号、姓名、基本工资、出勤率基本工资、出勤率行为:行为:设置基本工资、查设置基本工资、查询基本工资、计算询基本工资、计算实际工资实际工资Class CCompanyStaffprivate:iStaf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 概述 精选 文档
限制150内