面向对象思想和编程.ppt
《面向对象思想和编程.ppt》由会员分享,可在线阅读,更多相关《面向对象思想和编程.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象思想和编程面向对象思想和编程2 2 2回顾回顾程序包括程序包括数据数据数据类型数据类型,数据结构数据结构处理过程处理过程算法算法两种程序设计思想两种程序设计思想面向过程面向过程:以操作为中心以操作为中心面向对象面向对象:以数据为中心以数据为中心3 3 3数据与操作数据与操作:面向过程观点面向过程观点程序就是对数据进行一系列的操作程序就是对数据进行一系列的操作先表示数据先表示数据:常量常量,变量变量再来处理数据再来处理数据x=1y=2z=x+yprintz 特点特点:数据与操作分离数据与操作分离数据是被动的数据是被动的,操作是主动的操作是主动的4 4以过程为中心以过程为中心准备好数据之后
2、准备好数据之后,主要是进行数据处理过主要是进行数据处理过程的设计程的设计,即算法设计即算法设计.这种设计方法中这种设计方法中,数据通常对整个处理过数据通常对整个处理过程都是公开的程都是公开的,不能隐藏数据不能隐藏数据.x=1y=2z=x+yw=xy#和上一行处理同样的数据和上一行处理同样的数据x,yz=z*wprintz5 5复杂处理过程的设计复杂处理过程的设计模块化模块化defop1(a,b):returna*a-b*bdefop2(a,b):returna*b+b*ax=1y=2z=3result1=op1(x,y)result2=op2(x,z)printresult1+result2
3、函数函数可以看作是更高可以看作是更高抽象级的操作抽象级的操作,与普通与普通操作似乎并无本质差别操作似乎并无本质差别.x=1y=2res=x+yprintres但函数有数据隐藏功能但函数有数据隐藏功能6 6函数与数据隐藏函数与数据隐藏函数是功能黑箱函数是功能黑箱使用者需要的只是函数的功能使用者需要的只是函数的功能,并不需要知并不需要知晓它内部是如何实现功能的晓它内部是如何实现功能的函数内部处理的数据不对函数外部开放函数内部处理的数据不对函数外部开放一个函数不能直接访问另一个函数内部的数据一个函数不能直接访问另一个函数内部的数据7 7小结小结:面向过程设计面向过程设计数据与操作分离数据与操作分离,
4、以操作过程为中心以操作过程为中心先表示数据先表示数据主要精力放在设计数据操作及其流程控制主要精力放在设计数据操作及其流程控制对复杂程序采用自顶向下设计和模块化设计对复杂程序采用自顶向下设计和模块化设计将使用低级别操作的复杂过程设计成使用高级别将使用低级别操作的复杂过程设计成使用高级别操作的简单过程操作的简单过程 不适合的应用不适合的应用:如如GUI程序程序没有明确的执行流程没有明确的执行流程,由不可预知的事件驱由不可预知的事件驱动处理过程动处理过程8 8数据与操作数据与操作:面向对象观点面向对象观点数据与操作不可分离数据与操作不可分离数据类型概念已经提示我们数据类型概念已经提示我们:特定数据值
5、和特定数据值和特定操作是不可分割的两件事情特定操作是不可分割的两件事情Q:请问请问x+y是什么意思是什么意思?A:+对不同类型的对不同类型的x,y值有不同意义值有不同意义.既然如此既然如此,何不将特定数据值何不将特定数据值与特定操作捆绑在一起与特定操作捆绑在一起,形成一形成一种新型种新型数据数据?由此产生了对象概念由此产生了对象概念9 9对象对象对象对象(Object):集数据与操作于一身集数据与操作于一身.对象拥有特定数据对象拥有特定数据对象能对其数据进行特定操作对象能对其数据进行特定操作计算计算:向对象发操作请求消息向对象发操作请求消息.对象是主动的对象是主动的,自己掌控对其数据的操作自己
6、掌控对其数据的操作对象将自己能执行的操作对外公开对象将自己能执行的操作对外公开面向对象面向对象(Object-Oriented):软件系统由各软件系统由各种对象组成种对象组成,对象之间通过消息进行交互对象之间通过消息进行交互.1010对象例子对象例子人人数据数据:姓名姓名,出生日期出生日期,身高身高,体重体重,.操作操作:计算年龄计算年龄,判断体重是否标准判断体重是否标准,.电视机电视机数据数据:型号型号,厂商厂商,尺寸尺寸,频道数频道数,.操作操作:开机开机,关机关机,调频道调频道,调音量调音量,.室内环境室内环境数据数据:温度温度,湿度湿度,容积容积,.操作操作:调节温度调节温度,调节湿度
7、调节湿度,换算容积换算容积单位单位1111面向过程面向过程vs面向对象编程面向对象编程假设一个问题涉及数据假设一个问题涉及数据X和和Y,对对X要进行要进行的操作为的操作为f(),g(),对对Y的操作为的操作为h()面向过程设计和面向对象得到的程序分别形面向过程设计和面向对象得到的程序分别形如如X=.Y=.f(X)g(X)h(Y)Xf()g()Yh()请求X执行f()请求X执行g()请求Y执行h()121212复杂数据的表示复杂数据的表示简单数据可以用现成的数据类型表示简单数据可以用现成的数据类型表示每个数据类型都包括每个数据类型都包括定义一个值的集合定义一个值的集合:如如int定义一些对值的运
8、算定义一些对值的运算(操作操作):如如+,-,*,/复杂数据如何表示复杂数据如何表示?拆成简单数据拆成简单数据例如例如学生学生拆成拆成name,age,addr等简单数据等简单数据定义新类型定义新类型例如定义类型例如定义类型S,其值是由其值是由name,age,addr等构成等构成的整体的整体131313自定义类型的值和操作自定义类型的值和操作分离分离融为一体融为一体141414从类型到类从类型到类类是类型概念的发展类是类型概念的发展对象是广义的对象是广义的数据值数据值对象所属的数据类型就是对象所属的数据类型就是类类用于描述复杂数据的静态和动态行为用于描述复杂数据的静态和动态行为类类(clas
9、s):描述相似对象的共性描述相似对象的共性.包括包括数据数据操作操作:方法方法(method)对象是类的对象是类的实例实例151515类与抽象类与抽象类是对现实事物的抽象类是对现实事物的抽象数据抽象数据抽象例如例如:从具体学生抽象出姓名从具体学生抽象出姓名,年龄年龄,地址等数据地址等数据行为抽象行为抽象例如例如:从学生日常行为抽象出选课从学生日常行为抽象出选课,加入社团等操加入社团等操作作于是产生了类于是产生了类Student的定义的定义抽象可以在多个层次上进行抽象可以在多个层次上进行例如例如:学生学生-人人-动物动物-生物生物161616封装封装封装封装:数据和操作结合成一个程序单元数据和操
10、作结合成一个程序单元,对对外部隐藏内部实现细节外部隐藏内部实现细节.不允许用户直接操作类中被隐藏的信息不允许用户直接操作类中被隐藏的信息 用户也无需了解隐藏的信息就能使用该类用户也无需了解隐藏的信息就能使用该类类对外公开方法名称和调用格式类对外公开方法名称和调用格式,即界面即界面.外界向对象发消息外界向对象发消息(方法名及参数方法名及参数)对象响应消息对象响应消息,执行相应方法执行相应方法外界只能按对象允许的方式来处理对象数据外界只能按对象允许的方式来处理对象数据171717封装的好处封装的好处安全安全:对象自己的方法处理自己的数据对象自己的方法处理自己的数据易用易用:使用者无需了解内部实现细
11、节使用者无需了解内部实现细节易维护易维护:实现者修改内部实现不会影响使实现者修改内部实现不会影响使用者用者标准化标准化:同类甚至不同类的对象对使用者同类甚至不同类的对象对使用者都呈现同样的操作界面都呈现同样的操作界面类的定义类的定义类定义类定义class:方法定义同函数定义方法定义同函数定义def():.方法是依附于类的函数方法是依附于类的函数,普通函数则是独立的普通函数则是独立的.方法的第一个参数是专用的方法的第一个参数是专用的,习惯用名字习惯用名字self.具体含义见后具体含义见后.只能通过向对象发消息来调用方法只能通过向对象发消息来调用方法.18实例变量实例变量(1)回忆回忆:对象是数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 思想 编程
限制150内