python-初识面向对象.ppt_第1页
python-初识面向对象.ppt_第2页
python-初识面向对象.ppt_第3页
python-初识面向对象.ppt_第4页
python-初识面向对象.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录,创建类和对象面向对象三大特性(封装、继承、多态)类的成员(字段、方法、属性)类成员的修饰符(公有、私有)类的特殊成员,1、创建类和对象,面向对象编程ObjectOrientedProgramming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。当一个类定义完之后,就产生了一个类对象。类对象支持两种操作:引用和实例化。引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生出一个类对象的实例,称作实例对象。,类和对象在内存中是如何保存的?,如上图所示,根据类创建对象时,对象中除了封装name和age的值之外,还会保存一个类对象指针,该值指向当前对象的类。,2、面向对象三大特性,封装封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要:1)将内容封装到某处2)从某处调用被封装的内容,对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象中,然后通过对象直接或者self间接获取被封装的内容。,继承,对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。除了子类和父类的称谓,你可能看到过派生类和基类,继承的实现原理,多态,当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()。这样,我们就获得了继承的另一个好处:多态。#多态性:一种调用方式,不同的执行效果,类的方法,类的成员可以分为三大类:字段、方法和属性。,1)字段,普通字段属于对象静态字段属于类区别:存储的位置不同普通字段需要通过对象来访问静态字段通过类访问,2、方法,方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self;类方法:由类调用;至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;静态方法:由类调用;无默认参数;,静态方法及类方法,静态方法仅是类中的函数,不需要绑定实例,也就是说静态方法的定义不需要传入self参数.静态方法不属于类的某一个实例对象,而是属于类本身,所以不需要绑定到实例对象.可以通过className.staticMethodName的方式来调用.特点:只能使用静态变量,所以始终占用同一个内存,执行效率更高,但不会被自动回收.应用场景:用于处理一些不会经常改变,但却会被频繁调用的数据。#静态成员不能访问非静态成员,因为非静态成员只有在被调用时才会被加载进内存,而静态成员是长驻内存且不会被自动回收的,所以非静态成员却可以访问静态成员,类方法和实例方法类似,区别在于前者需要定义类对象参数cls而后者需要定义实例对象参数self.两者在绑定方法调用中,都会自动的传递相应的对象到第一次参数(cls/self)中.#类方法中的cls参数表示类对象自身,属性,属性的基本使用由属性的定义和调用要注意一下几点:定义时,在普通方法的基础上添加property装饰器;定义时,属性仅有一个self参数调用时,无需括号方法:foo_obj.func()属性:foo_p注意:属性存在意义是:访问属性时可以制造出和访问字段完全相同的假象属性由方法变种而来,如果Python中没有属性,方法完全可以代替其功能,2、属性的两种定义方式经典类,具有一种property装饰器(如上一步实例)新式类,具有三种property装饰器property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。1)只有property表示只读。2)同时有property和x.setter表示可读可写。3)同时有property和x.setter和x.deleter表示可读可写可删除。,类成员的修饰符,类的所有成员在上一步骤中已经做了详细的介绍,对于每一个类的成员而言都有两种形式:公有成员,在任何地方都能访问私有成员,只有在类的内部才能方法私有成员和公有成员的定义不同:私有成员命名时,前两个字符是下划线。(特殊成员除外,例如:_init_、_call_、_dict_等)私有成员和公有成员的访问限制不同:静态字段公有静态字段:类可以访问;类内部可以访问;派生类中可以访问私有静态字段:仅类内部可以访问普通字段公有普通字段:对象可以访问;类内部可以访问;派生类中可以访问私有普通字段:仅类内部可以访问;,例子,类的特殊成员,1、_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论