




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025地面涂料施工合同范本
- 2025物业管理服务合同「下载」
- 2025年版本的房屋买卖合同无效示范文本
- 2025成都市商品房买卖合同范本
- 网络原理考试题及答案
- 2025年乡村全科助理医师的成长经历与思考试题及答案
- 几何考试题及答案
- 网络规划设计师考试效率提升技巧试题及答案
- 系统规划与管理师考试复习过程中的心得体会试题及答案
- 社会心理学与个体行为的关系探讨试题及答案
- 胸腺-胸腺瘤课件完整版
- 现金盘点表完整版
- 2022年郑州轨道工程职业学院单招职业适应性测试试题及答案解析
- 接触网验收标准
- 地铁16号线风阀设备安装手册
- 新《危险化学品安全管理条例》课件
- 中医科物理治疗登记表
- 高山下的花环
- 中医望色望神图集共59张课件
- 《跋傅给事帖》2020年浙江嘉兴中考文言文阅读真题(含答案与翻译)
- 银行从业资格考试题库附参考答案(共791题精心整理)
评论
0/150
提交评论