- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 面向对象;;目录页;目录页;目录页;面向对象是程序开发领域的重要思想,这种思想模拟了人类认识客观世界的思维方式,将开发中遇到的事物皆看作对象。;面向过程;;;;若加入悔棋功能,面向过程和面向对象,分别怎么实现呢?;面向过程;目录页;8.2 类的定义与使用;8.2.1 类的定义;8.2.1 类的定义;8.2.1 类的定义;8.2.2 对象的创建与使用;目录页;8.3.1 属性;8.3.1 属性;8.3.1 属性;8.3.1 属性;8.3.1 属性;8.3.2 方法;8.3.2 方法;8.3.2 方法;8.3.2 方法;8.3.2 方法;8.3.2 方法;8.3.3 私有成员;8.3.3 私有成员;8.3.3 私有成员;目录页;8.4 特殊方法;构造方法指的是__init__()方法。
创建对象时系统自动调用,从而实现对象的初始化。
每个类默认都有一个__init__()方法,可以在类中显式定义__init__()方法。
__init__()方法可以分为无参构造方法和有参构造方法。
当使用无参构造方法创建对象时,所有对象的属性都有相同的初始值。
当使用有参构造方法创建对象时,对象的属性可以有不同的初始值。;8.4.1 构造方法;8.4.1 构造方法;析构方法(即__del__()方法)是销毁对象时系统自动调用的方法
每个类默认都有一个__del__()方法,可以显式定义析构方法;与文件类似,每个对象都会占用系统的一块内存,使用之后若不及时销毁,会浪费系统资源。那么对象什么时候销毁呢?;Python通过引用计数器记录所有对象的引用(可以理解为对象所占内存的别名)数量,一旦某个对象的引用计数器的值为0,系统就会销毁这个对象,收回对象所占用的内存空间。;目录页;本实例要求编写代码,实现一个基于面向对象思想的、具有添加、删除、修改、查找联系人信息,以及查看所有联系人的信息功能的通讯录程序。;本实例要求编写代码,实现一个基于面向对象思想的、具有背单词、添加新单词、删除单词、查找单词以及清空、退出生词本功能的生词本程序。;目录页;封装是面向对象的重要特性之一,它的基本思想是对外隐藏类的细节,提供用于访问类成员的公开接口。
如此,类的外部无需知道类的实现细节,只需要使用公开接口便可访问类的内容,这在一定程度上保证了类内数据的安全。;为了契合封装思想,我们在定义类时需要满足以下两点要求。
1.将类属性声明为私有属性。
2.添加两类供外界调用的公有方法,分别用于设置或获取私有属性的值。;8.6 封装;目录页;继承是面向对象的重要特性之一,它主要用于描述类与类之间的关系,在不改变原有类的基础上扩展原有类的功能。
若类与类之间具有继承关系,被继承的类称为父类或基类,继承其他类的类称为子类或派生类,子类会自动拥有父类的公有成员。;单继承即子类只继承一个父类。现实生活中,波斯猫、折耳猫、短毛猫都属于猫类,它们之间存在的继承关系即为单继承,如图所示。;8.7.1 单继承;子类不会拥有父类的私有成员,也不能访问父类的私有成员。;8.7.1 单继承;程序中的一个类也可以继承多个类,如此子类具有多个父类,也自动拥有所有父类的公有成员。;8.7.2 多继承;如果House类和Car类中有一个同名的方法,那么子类会调用哪个父类的同名方法呢?;如果子类继承的多个父类是平行关系的类,那么子类先继承哪个类,便会先调用哪个类的方法。;子类会原封不动地继承父类的方法,但子类有时需要按照自己的需求对继承来的方法进行调整,也就是在子类中重写从父类继承来的方法。;在子类中定义与父类方法同名的方法,在方法中按照子类需求重新编写功能代码即可。;子类重写了父类的方法之后,无法直接访问父类的同名方法,但可以使用super()函数间接调用父类中被重写的方法。;目录页;多态是面向对象的重要特性之一,它的直接表现即让不同类的同一功能可以通过同一个接口调用,表现出不同的行为。;8.8 多态;目录页;运算符重载是指赋予内置运算符新的功能,使内置运算符能适应更多的数据类型。;基类object中提供的一些特殊方法及其对应的运算符如表所示。;如果类中重写了Python基类object内置的有关运算符的特殊方法,那么该特殊方法对应的运算符将支持对该类的实例进行运算。;目录页;猜拳游戏一般包含三种手势:石头、剪刀、布,判定规则为石头胜剪刀,剪刀胜布,布胜石头。本实例要求编写代码,实现基于面向对象思想的人机猜拳游戏。;为使列表支持四则运算,我们可以自定义一个列表类,在其中重载运算符,列表中各元素分别与数值相加、相减、相乘或相除后所得的结果组成该列表的新元素。本实例要求编写代码,重载运算符,使列表支持四则运算。;目录页;本案例要求编写程序,实现一个基于面向思想的、具有开户、查询、取款、存款、转账、锁定、解锁
您可能关注的文档
- Python快速编程入门 第1章 Python概述 教学PPT.pptx
- Python快速编程入门 第2章 Python基础 教学PPT.pptx
- Python快速编程入门 第3章 流程控制 教学PPT.pptx
- Python快速编程入门 第4章 字符串 教学PPT.pptx
- Python快速编程入门 第5章 组合数据类型 教学PPT.pptx
- Python快速编程入门 第6章 函数 教学PPT.pptx
- Python快速编程入门 第7章 文件与数据格式化 教学PPT.pptx
- Python快速编程入门 第9章 异常 教学PPT.pptx
- Python快速编程入门 第10章 Python计算生态与常用库 教学PPT.pptx
- Python快速编程入门 第11章 飞机大战.pptx
最近下载
- 人教版五年级数学上册全册练习课件.pptx
- 2023 年成人高等学校招生全国统一考试专升本《英语》试题及答案.pdf
- 潮汕食品推广方案策划.pptx
- 水电站大坝堰基防渗墙施工试验方案.doc
- 精细化工行业数字化解决方案.docx
- 22J403-1楼梯 栏杆 栏板(一)图集.pptx
- 七年级语文古诗赏析之龟虽寿省公开课一等奖全国示范课微课金奖PPT课件.pptx
- 智慧树知到《ERP沙盘模拟经营(山东联盟)》章节测试答案.docx VIP
- AEC - Q100-007 - Rev-B - Fault Simulation and Test Grading故障模拟和测试分级.pdf
- 工伤保险条例全文.doc VIP
文档评论(0)