Python程序设计 课件 第五章.pptx

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第五章面向对象Python程序设计

01面向对象简介02类与对象03类的继承与组合04本章回顾

01面向对象面向对象(ObjectOriented)是一种编程思想,是基于面向过程的编程思想慢慢发展而来的。面向对象与面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用就可以了。而面向对象是把构成问题的事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为,面向对象是一种“自下而上”的设计语言,先设计组件,再完成拼装。面向对象相较于面向过程有更强的灵活性和扩展性。

面向过程与面向对象举例以剪刀石头布游戏为例来理解面向过程和面向对象思想的区别,面向过程的设计思路就是按照步骤来实现:①开始游戏。②玩家1出剪刀或石头或布。③玩家2出剪刀或石头或布。④根据玩家出的结果判断输赢。⑤重复步骤2、3、4,直到退出游戏。面向对象的设计则是从另外的思路来解决问题,整个游戏中玩家1和玩家2属性和行为一致,可以用玩家类表示,判断输赢可以用游戏规则类表示,程序的实现步骤如下:①使用玩家类接收用户输入并将输入结果传递给游戏规则类。②利用游戏规则类中的方法对输赢进行判定。从上面的案例可以看出,针对同一个问题,面向过程和面向对象解决问题的思路有很大差异,从面向过程到面向对象,不仅仅是编程方式的改变,更重要的是思考方式的改变。

面向过程与面向对象区别面向过程更注重步骤与过程,不注重职责与分工,在开发简单系统可行,但面对复杂大型系统时代码会冗杂。面向对象注重职责与分工,完成需求前先确定职责,再根据职责确定对象并封装方法,最后根据业务需求让不同对象调用不同方法。同时提到有面向过程和面向对象区别的总结表(下表)。

面向对象基本概念学习面向对象编程需先了解相关概念。1.对象:在Python中一切皆为对象,如人、鸡、花等都可表示为对象,具有唯一性,有属性和行为,属性是静态部分如人的名字、性别等,行为是动态部分如吃饭、睡觉、工作等。2.类:是具有相同属性和方法的对象的集合,是对象的模板,可对共有的属性和方法进行定义,如狗的类有嘴、眼睛、腿等属性和睡觉、吃东西、摇尾巴等行为,邻居家小狗是该类的一个对象。3.实例化:创建类的实例即生成具体对象,如“狗”是类,自己养的宠物狗XX是实例化后的实例对象。

类和对象的关系类和对象的关系可总结为以下几点:①类是对象的模板,对象是类的具体实例。②类是抽象的,对象是具体的。③每一个对象都是某个类的实例。

面向对象程序设计的特点面向对象程序设计有封装、继承、多态三大特点。封装:是面向对象编程核心思想,把客观事物封装成类,可将相同属性和行为的对象封装成类并隐藏不必要信息,确保类内部数据完整。优点包括减少耦合、可自由修改类内部结构、保护成员属性、隐藏信息实现细节。继承:是面向对象程序设计基石,实现代码复用。子类继承父类特征和行为,可定义自己的属性和方法。优点有提高类代码复用性、可维护性,使类之间产生关系且是多态前提。多态:允许不同类对象对同一消息有不同响应,通过动态绑定实现,同一操作作用不同对象有不同结果。存在条件为继承、子类重写父类方法、父类引用变量指向子类对象。

02类与对象在生活中先有对象再有类,而在程序中是先有类才能有对象。在Python中,类的定义使用class关键字实现,其语法格式如下:参数说明如下表所示。

类的定义类的定义举例如下图所示。

类的定义类在定义时可以为其添加说明文档,说明文档放在字符串中,通常位于类内部、所有代码的最前面,可以通过内置的help()函数或__doc__属性获取说明文档的内容(和函数的说明文档类似),如右图所示。

类的实例化类定义好之后,相当于有了一个模板,但没有对象。对象的生成是通过类的实例化实现的,类的实例化语法如下:其中ClassName为类名,parameterlist为参数列表,类实例化时ClassName是必须指定的,是否有parameterlist要结合__init__()方法中的参数情况。

创建__init__()方法__init__()方法类似于Java语言中的构造方法,在类实例化时会自动调用。__init__()方法必须包含一个self参数,且必须是第一个参数,如果没有指定self参数的话,实例化时会报错,如图5-2所示。

创建__init__()方法self参数是一个指向实例本身的引用,用于访问类中的属性和方法。当__init__()方法中只有一个self参数时,实例化时不需要指定参数,因为调用__init__()方法时会自动传递self参数,如图5-3所示。

创建__init__()方法在__init__()方法中,除了可以指定self参数,还

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档