《Python程序设计与案例教程》课件chap10面向对象程序设计_第1页
《Python程序设计与案例教程》课件chap10面向对象程序设计_第2页
《Python程序设计与案例教程》课件chap10面向对象程序设计_第3页
《Python程序设计与案例教程》课件chap10面向对象程序设计_第4页
《Python程序设计与案例教程》课件chap10面向对象程序设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章面向对象程序设计Python程序设计与案例教程10.1面向对象程序设计概述1.对象:现实世界中客观存在的事物对象特征:(1)有一个名称用来唯一标识对象;(2)用一组状态用来描述其特征;(3)用一组操作用来实现其功能。2.类:对一组具有相同属性和相同操作对象的抽象一个类的构造至少应包括以下方面:(1)类的名称;(2)属性结构,包括所用的类型、实例变量及操作的定义;(3)与其他类的关系,如继承关系等;(4)外部操作类的实例的操作界面。3.消息:对象之间在交互中所传送的通信信息。4.封装:在面向对象方法中,对象的属性和方法的实现代码被封装在对象的内部,象具有的这种封装特性称为封装性。5.继承性:在已有类的基础上创建新的类,新类可以从一个或多个已有类中继承函数和数据,而且可以重新定义或加进新的数据和函数。6.多态性:类中具有相似功能的不同函数使用同一名称。10.2类与对象类的定义:class类名: 类的内部实现classCat:defdescribe(self): print(‘Thisisacat‘)10.2类与对象2.对象的创建:对象名=类名(参数列表)cat=Cat() #创建对象cat.describe() #调用成员方法10.3属性与方法实例属性>>>classcat:>>> def__init__(self,s):>>> =s #定义实例属性2.类属性classCat: size=‘small’#定义类属性

def__init__(self,s): =s #定义实例属性cat1=Cat(‘mi‘)cat2=Cat(‘mao’)print(,Cat.size)3.对象方法类中定义的方法:私有方法、公有方法和静态方法公有方法、私有方法和静态方法的定义和调用。classAnimal:specie=‘cat’def__init__(self): self.__name=‘mao’ #定义和设置私有成员

self.__color=‘black’def__outPutName(self):#定义私有函数

print(self.__name)defoutPut(self): #定义共有函数outPutName() #调用私有方法outPutColor()@staticmethod #定义静态方法defgetSpecie(): returnAnimal.specie#调用类属性

@staticmethoddefsetSpecie(s):Animal.specie=s10.

4继承和多态继承class<父类名>(object): <父类内部实现>class<子类名>(<父类名>): <子类内部实现>

2.多重继承Python支持多重继承,若父类中有相同的方法名,子类在调用过程中并没有指定父类,则子类从左向右按照一定的访问序列逐一访问父类函数,保证每个父类函数仅被调用一次。3.多态:指不同对象对同一消息做出的不同反应,即“一个接口,不同实现”classA(object): defrun(self): print('thisisA')class B(A): defrun(self): print('thisisB')class C(A): defrun(self): print('thisisC')

#主程序b=B()b.run()c=C()c.run() 例:已知序列a,求解所有元素的和与所有元素的积。classListArr:def__init__(self): self.sum=0 =1defadd(self,l): foriteminl: self.sum+=itemdefproduct(self,l): foriteminl: *=itema=[12,32,63,54]l=ListArr()

l.add(a)duct(a)print(l.sum)print()10.

5应用举例例:已知序列a,求解所有元素的和与所有元素的积。importrandomclassOrderList:def__init__(self):self.arr=[]self.num=0defgetList(self):foriinrange(10):self.arr.append(random.randint(1,100))self.num+=1defselectSort(self):foriinrange(0,self.num-1):forjinrange(i+1,self.num):ifself.arr[i]>self.arr[j]:self.arr[i],self.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论