(4.6)--第6章 面向对象程序设计.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 面向对象程序设计1 第6章 面向对象程序设计面向对象程序设计的一个关键性观念是将数据以及对数据的操作封装在一起,组成一个相互依存、不可分割的整体(对象),不同对象之间通过消息机制来通信或者同步。对于相同类型的对象(instance)进行分类、抽象后,得出共同的特征而形成了类(class),面向对象程序设计的关键就是如何合理地定义这些类并且组织多个类之间的关系。2 6.1 类的定义与使用Python使用class关键字来定义类,class关键字之后是一个空格,接下来是类的名字,如果派生自其它基类的话则需要把所有基类放到一对圆括号中并使用逗号分隔,然后是一个冒号,最后换行并定义类的内部实现。class Car(object): #定义一个类,派生自object类 def infor(self): #定义成员方法 print("This is a car")3 6.1 类的定义与使用定义了类之后,就可以用来实例化对象,并通过“对象名.成员”的方式来访问其中的数据成员或成员方法。car = Car() #实例化对象car.infor() #调用对象的成员方法4 6.2 数据成员与成员方法创建类时用变量形式表示对象特征的成员称为数据成员(attribute),用函数形式表示对象行为的成员称为成员方法(method),数据成员和成员方法统称为类的成员。5 6.2.1 私有成员与公有成员私有成员在类的外部不能直接访问,如果成员名以两个下划线开头但是不以两个下划线结束则表示是私有成员,否则就不是私有成员。Python并没有对私有成员提供严格的访问保护机制,通过一种特殊方式“对象名._类名__xxx”也可以在外部程序中访问私有成员,但这会破坏类的封装性,不建议这样做。6 6.2.1 私有成员与公有成员>>> class A: def __init__(self, value1=0, value2=0): self.value1 = value1 self.__value2 = value2 def setValue(self, value1, value2): self.value1 = value1 self.__value2 = value2 def show(self): print(self._value1) print(self.__value2)>>> a = A()>>> a.value1 #普通数据成员可以直接访问0>>> a._A__value2 #在外部访问对象的私有数据成员07 6.2.1 私有成员与公有成员在Python中,以下划线开头的变量名和方法名有特殊的含义,尤其是在类的定义中。__xxx__:系统定义的特殊成员;__xxx:私有成员。注意:Python中不存在严格意义上的私有成员。8 6.2.2 数据成员数据成员可以大致分为两类:属于对象的数据成员和属于类的数据成员。属于对象的数据成员一般在构造方法__init__()中定义,在定义和在实例方法中访问数据成员时以self作为前缀,同一个类的不同对象(实例)的数据成员之间互不影响;属于类的数据成员是该类所有对象共享的,不属于任何一个对象,在定义类时这类数据成员一般不在任何一个成员方法的定义中。在主程序中或类的外部,对象数据成员属于实例(对象),只能通过对象名访问;而类数据成员属于类,可以通过类名或对象名访问。9 6.2.3 成员方法、类方法、静态方法方法一般指与特定实例绑定的函数,通过对象调用方法时,对象本身将被作为第一个参数自动传递过去,普通函数并不具备这个特点。10 6.2.3 成员方法、类方法、静态方法Python类的成员方法大致可以分为公有方法、私有方法、静态方法、类方法。公有方法、私有方法一般是指属于对象的实例方法,私有方法的名字以两个下划线开头。每个对象都有自己的公有方法和私有方法,在这两类方法中都可以访问属于类和对象的成员。公有方法通过对象名直接调用,私有方法不能通过对象名直接调用,只能在其他实例方法中通过前缀self进行调用或在外部通过特殊的形式来调用。11 6.2.3 成员方法、类方法、静态方法所有实例方法都必须至少有一个名为self的参数,并且必须是方法的第一个形参(如果有多个形参的话),self参数代表当前对象。在实例方法中访问实例成员时需要以self为前缀,但在外部通过对象名调用对象方法时并不需要传递这个参数。如果在外部通过类名调用属于对象的公有方法,需要显式为该方法的self参数传递一个对象名,用

文档评论(0)

奉献教育1688 + 关注
实名认证
内容提供者

心有凌云志,无高不可攀!

1亿VIP精品文档

相关文档