Python语言类和对象课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python语言类和对象课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 语言 对象 课件
- 资源描述:
-
1、第八章类和对象8.1 理解面向对象8.2 类的定义与使用8.3 类的特点8.4 实验8.5 小结8.6 习题8.1.1 什么是面向对象编程 面向对象编程(Object Oriented Programming),简称OOP,是一种程序设计思想,是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的,是对事物特征和变化规律的抽象,是更普遍、更集中、更深刻地描述客体的特征。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。8.1 理解面向对象 第八章 类和对象8.1.2面向对象术语简介面向对象常用的术语如下:类:是创建对象的代码段,描述了对象的特征
2、、属性、要实现的功能以及采用的方法等。属性:描述了对象的静态特征。方法:描述了对象的动态动作。对象:对象是类的一个实例,就是模拟真实事件,把数据和代码都集合到一起,即属性、方法的集合。实例:就是类的实体。8.1 理解面向对象 第八章 类和对象8.1.2面向对象术语简介实例化:创建类的一个实例的过程。封装:把对象的属性、方法、事件集中到一个统一的类中,并对调用者屏蔽其中的细节。继承:一个类共享另一个类的数据结构和方法的机制称为继承。起始类称为基类、超类、父类,而继承类称为派生类、子类。继承类是对被继承类的扩展。多态:一个同样的函数对于不同的对象可以具有不同的实现,就称为多态。接口:定义了方法、属
3、性的结构,为其成员提供规约,不提供实现。不能直接从接口创建对象,必须首先创建一个类来实现接口所定义的内容。8.1 理解面向对象 第八章 类和对象8.1.2面向对象术语简介重载:一个方法可以具有许多不同的接口,但方法的名称是相同的。事件:事件是由某个外部行为所引发的对象方法。重写:在派生类中,对基类某个方法的程序代码进行重新编写,使其实现不同的功能,我们把这个过程称为重写。构造函数:是创建对象所调用的特殊方法。析构函数:是释放对象时所调用的特殊方法。8.1 理解面向对象 第八章 类和对象第八章类和对象8.2 类的定义与使用8.1 理解面向对象8.3 类的特点8.4 实验大数据应用人才培养系列教材
4、8.5 小结8.6 习题8.2.1 类的定义类就是对象的属性和方法的封装,静态的特征称为属性,动态的动作称为方法。类通常的语法格式如下:class ClassName:#属性 属性定义体#方法 方法定义体8.2 类的定义与使用 第八章 类和对象8.2.1 类的定义类的定义以关键字class开始,类名必须以大写字母开头,类名后面紧跟冒号“:”。类的定义示例如下:class Person:#Python的类名约定以大写字母开头#-类的一个示例-#属性 skincolor=yellow high=1688.2 类的定义与使用 第八章 类和对象8.2.1 类的定义weight=65#方法 def go
5、road(self):print(人走路动作的测试)def sleep(self):print(睡觉,晚安!)从上例可以看出,属性就是变量,静态的特征,方法就是一个个的函数,通过这些函数来描述动作行为。8.2 类的定义与使用 第八章 类和对象8.2.1 类的定义在定义类属性的时候一般用名词,定义类方法的时候一般用动词,类名约定以大写字母开头,函数约定以小写字母开头。8.2 类的定义与使用 第八章 类和对象8.2.2 类的使用类定义好之后,就可将类实例化为对象。类实例化对象的语法格式如下:对象名=类名()实例化对象的操作符是:等号“=”,在类实例化对象的时候,类名后面要添加一个括号“()”。类实
6、例化示例:p=Person()上例将类Person实例化为对象p。8.2 类的定义与使用 第八章 类和对象8.2.3 类的构造方法及专有方法类的构造方法是:_init_(self)。只要实例化一个对象的时候,这个方法就会在对象被创建的时候自动调用。实例化对象的时候是可以传入参数的,这些参数会自动传入_init_(self,param1,param2,)方法中,我们可以通过重写这个方法来自定义对象的初始化操作。如下例所示代码:class Bear:def _init_(self,name):self.name=name def kill(self):8.2 类的定义与使用 第八章 类和对象8.2
7、.3 类的构造方法及专有方法 print(%s,是保护动物,不能杀.%self.name)运行结果如下:a=Bear(狗熊)a.kill()狗熊,是保护动物,不能杀.在上例中,我们重写了_init_(self)方法,如果没有重写,它的默认调用就是_init_(self),没有任何参数或只有一个self参数,所以在实例化的时候,参数是空的。在例子中,我们给了它一个参数name,就成了_init_(self,name),在实例化的时候就可以传参数了,因为第一个参数self8.2 类的定义与使用 第八章 类和对象8.2.3 类的构造方法及专有方法是默认的,就把“狗熊”传给“name”,运行程序后得到
8、了我们期望的结果,这样使用起来就非常方便。另外,我们还可以把传入的参数设置为默认参数,我们在实例化的时候不传入参数系统也不会报错,如下例所示代码:class Bear:def _init_(self,name=默认的熊):self.name=name def kill(self):print(%s,是保护动物,不能杀.%self.name)8.2 类的定义与使用 第八章 类和对象8.2.3 类的构造方法及专有方法代码运行结果如下:b=Bear()b.kill()默认的熊,是保护动物,不能杀.c=Bear(替代熊)c.kill()替代熊,是保护动物,不能杀.在上例中,我们把构造函数的参数name
9、设置为默认值:“默认的熊”8.2 类的定义与使用 第八章 类和对象8.2.3 类的构造方法及专有方法对象实例化的时候没有传值给参数name,程序运行正确,输出了期望的结果:“默认的熊,是保护动物,不能杀”,当在对象实例化的时候给参数name传值为:“替代熊”,当对象c调用方法kill()时,输出了正确的结果:“替代熊,是保护动物,不能杀.”。8.2 类的定义与使用 第八章 类和对象8.2.4 类的访问权限大家都知道,在C+/java中,是通过关键字public、private来表明访问的权限是公有、私有的。然而在Python中,默认情况下对象的属性和方法都是公开的,公有的,通过点(.)操作符来
10、访问,如下例所示代码:class Company:name=云创科技运行结果如下:c=Company()c.name云创科技8.2 类的定义与使用 第八章 类和对象8.2.4 类的访问权限在上例中,我们直接通过点(.)来访问了类Company的变量name,运行得到了结果:云创科技。为了实现类似于私有变量的特征,Python内部采用了name mangling的技术(名字重整或名字改变),在变量名或函数名前加上两个下划线(“_”),这个函数或变量就变为私有了。为了访问类中的私有变量,有一个折衷的处理办法,如下例所示代码:class Company:_name=云创科技 def getname(
11、self):8.2 类的定义与使用 第八章 类和对象8.2.4 类的访问权限 return self._name运行结果如下:c=Company()c.getname()云创科技在上例中,我们在类Company内部重新定义一个方法getname(self),在程序外部通过访问对象的getname()方法来访问了类Company中的私有变量:_name。8.2 类的定义与使用 第八章 类和对象8.2.4 类的访问权限 return self._name运行结果如下:c=Company()c.getname()云创科技在上例中,我们在类Company内部重新定义一个方法getname(self),
展开阅读全文