第8章PythonPytho程序设计基础教程 面向对象编程ppt课件.pptx
《第8章PythonPytho程序设计基础教程 面向对象编程ppt课件.pptx》由会员分享,可在线阅读,更多相关《第8章PythonPytho程序设计基础教程 面向对象编程ppt课件.pptx(27页珍藏版)》请在三一办公上搜索。
1、2018.2,Python语言程序设计,南京邮电大学计算机学院,第8章 面向对象编程,学习目标,掌握定义类的方法掌握创建和使用对象的方法掌握类的继承的概念和使用方法,3,8.1 类和对象,面向对象编程是模拟人类认识事物的方式的编程方法,是最有效的编程方法之一。人类通过将事物进行分类来认识世界,比如,人类将自然界中的事物分类生物和非生物,又将生物分为动物、植物、微生物,又将动物分为有脊椎动物和无脊椎动物,继而又分为哺乳类、鸟类、鱼类、爬行类等,哺乳类又分为猫、狗、牛、羊等。每一个类的个体都具有一些共同的属性,在面向对象编程中,个体被称为对象,又称为实例。在本章的学习中,类、对象、实例是三个常用的
2、术语。,4,Person类的定义和实例化,接下来我们来定义人的类Person类,人有名字(name)、性别(gender)、体重(weight)等属性,根据这个说明,我们可以定义Person类并创建Person对象,如以下代码所示:,5,#代码块1:类的定义class Person:def _init_(self):self.name=韩信 self.gender=男 self.weight=70 print(An instance created),#代码块2:类的实例化p1=Person()print(p1.name)print(p1.gender)print(p1.weight),代码块
3、1定义了Person类,说明如下:class是定义类的关键字,Person是类名,在Python定义类的格式是“class 类名”,这是一个固定格式。这个类中只有一个函数,类中的函数也称为“方法”,该方法的名称为_init_,前面学到的有关函数的一切都适用于方法,唯一重要的差别是调用方法的方式。_init_()不是普通方法,是一个特殊的方法,其作用是:每当你根据Person 类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在与普通方法进行区分。,6,在_init_()方法的定义中,形参self 必不可少,还必须位于其他形参的前面。为何必
4、须在方法定义中包含形参self 呢?因为Python调用这个_init_()方法来创建Dog 实例时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,让实例能够访问类中的属性和方法。我们创建Dog 实例时,Python将调用Person 类的方法_init_(),self 会自动传递,因此我们不需要传递它。_int_()方法中有三条赋值语句,定义了三个变量name、gender和weight,这三个变量都有前缀self。以self 为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name=张三将变量name赋值为“韩信”,然后该
5、变量被关联到当前创建的实例。self.gender=男和self.weight=70的作用与此类似。像这样带有前缀self的、可通过实例访问的变量称为属性。,7,代码块2紧接在类Person的定义语句后面,是使用类Person创建对象的代码,创建了两个名为p1和p2的Person对象,也称为Person实例。代码块2的解释如下:使用Person()创建一个对象,并赋值给p1对象变量,p1是这个对象的对象名,在创建对象时自动调用Person类的_init_()方法。使用“.”号访问p1的属性,包括name、gender、weight,“.”符号是访问对象的属性和方法的特殊符号。,8,Person
6、类的完整定义,9,class Person:def _init_(self,name,gender,weight):self.name=name self.gender=gender self.weight=weight print(A person named%s is created%self.name)def eat(self,food):self.weight=self.weight+food print(%s eat%s food,and my weight is%d%(self.name,food,self.weight)def run(self):self.weight=self
7、.weight-1 print(%s runned,and my weight is%d%(self.name,self.weight)def say(self):print(My name is%s%(self.name),该代码重新定义了Person类,与上一节中定义的Person类不同的点如下:_init_()方法拥有除self外的三个参数:name、gender、weight,分别赋值给self.name、self.gener、self.weight。在创建Person对象的时候可以通过传不同的值创建不同的对象,如在代码块4中,通过p1=Person(韩信,男,70),创建一个名为韩信
8、,男性,体重70的Person对象,通过p2=Person(王昭君,女,50)创建一个名为王昭君,女性,体重50的Person对象。定义了eat()方法,该方法的参数是self和food:self表示当前调用eat()的对象,food是一个数字类型参数,表示吃进去的食物重量,通过self.weight=self.weight+food使得调用eat()方法的Person对象体重增加,如p1.eat(2)表示Person对象p1的体重增加2,同时显示信息。,10,定义了run()方法,该方法只有一个参数self,通过self.weight=self.weight-1使得调用run()的对象体重减
9、1,如p1.run(),表示Person对象p1通过跑步锻炼体重降低了1,同时显示信息。定义了say()方法,该方法只有一个参数self,通过print(My name is%s%(self.name)语句自我介绍,如p2.say(),输出“王昭君”,自我介绍。代码块4创建了两个不同的Person对象,分别是p1和p2,分别调用他们的eat()、run()、say()方法。,11,对象属性的默认值设置,可以为属性在_init_()方法中设置默认值,代码如下:,12,#例 8 3在类的定义中加入初始化代码def _init_(self,name,gender=男,weight=70):self.
10、_name=name self.gender=gender self.weight=weight print(A person named%s is created%self._name),对象属性的修改,13,#例 84属性值的添加、修改与删除示例p1=Person(安琪拉,女,45)p1.height=170p1.weight=46print(p1.height,p1.weight)del p1.heightprint(p1.height,p1.weight),其中:p1.height=70为对象p1添加了一个名为height的属性并赋值为70,height属性在Person类中没有定义,
11、只在p1对象中存在。p1.weight=46将对象p1的weight属性的值修改为46。del p1.height删除对象p1的height属性。,14,私有属性和私有方法,15,#例 85私有属性的使用示例class Person:def _init_(self,name,gender=男,weight=70):self._name=name self.gender=gender self._weight=weight print(A person named%s is created%self._name)def eat(self,food):self._setWeight(self._w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章PythonPytho程序设计基础教程 面向对象编程ppt课件 PythonPytho 程序设计 基础教程 面向 对象 编程 ppt 课件
链接地址:https://www.31ppt.com/p-2105406.html