php基础教学——10.面向对象ppt课件_第1页
php基础教学——10.面向对象ppt课件_第2页
php基础教学——10.面向对象ppt课件_第3页
php基础教学——10.面向对象ppt课件_第4页
php基础教学——10.面向对象ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、PHP面向对象后盾网 2021-2021 v2.0 后盾网 人人做后盾houdunwang后盾网 人人做后盾对象u早期编程由于受电脑硬件限制,程序都是追求效率,而忽略可了解性、扩展性,随着硬件技术的开展,编程越来越注重多人开发,程序员越来越注重程序的可靠性、可扩展性、可维护性,所以刺激了程序文语的开展u面向过程:u程序员设计好程序代码流程图,辅助程序设计。优点:用什么功能就编写什么函数 缺陷:数据管理上比较混乱 ,主要集中在函数成面上,面向对象把属性和方法进展封装,更好的可重用性和可扩展性u面向对象:u万物皆对象,将构成问题的事务分解到各个对象上,建立对象的目的不是为了完成一个任务,而是为了描

2、画某个事务在处理问题中的行为,更符合人的思想习惯,代码重用性高,可扩展性好后盾网 人人做后盾类的概念u类:是一种笼统的概念,是具有一样语义定义对象的集合具有一样属性和方法的集体,运用详细的类是不可行的,只能实例化。拿汽车举例,汽车的设计图纸就是类,汽车是对象。设计中重点是类的创建u现实生活中类的概念:万物皆为对象,如我们运用的详细电脑就是对象,那电脑就是一个类。比如他手上拿着的 iphone手机 是一个对象,对 手机 那么是一个类u类名书写规范:类名首字母大写后盾网 人人做后盾对象u对象句柄:u用于区分不同对象。对象创建后,在内存中获取一块存储空间,储存空间的地址就是对象的标识或句柄u属性:u

3、在类中定义的变量,即为成员属性,用于描画对象特性的数据。如人的姓名,性别,首字母小写u方法:u函数定义在类中即为成员方法,用于描画对象动态特性的操作行为,方法名不区分大小写,不可重名,首字母小写u对象的生命周期:u对象创建后,生命周期开场,当程序终了或程序员去除对象后即销毁,PHP会自动销毁对象后盾网 人人做后盾对象产生的步骤在内存中开辟出对象的空间执行构造方法将对象的援用地址前往后盾网 人人做后盾对象的内存分布对象援用被放到了 栈区 里栈区 存放固定内容对象是放在 堆区 里堆区 存放可变内容静态成员放到 数据区 ,在第一次加载时候放入,可让 堆区 的每个对象共享函数和方法放在 代码区后盾网

4、人人做后盾对象的内存分布栈 区$lisi$lisi$wangwu$wangwu堆 区初始化数据区代码区name = 李四;age = 21;name = 王五;age = 24;$this$thisperson类的代码构造run() code()self: parent:self: parent:X 类的代码构造成员方法static 静态属性后盾网 人人做后盾对象的生命周期程序脚本执行完成后,PHP运转回收机制,删除内存中的对象删除一切对象的援用后,对象即为渣滓,回收机制自动删除渣滓后盾网 人人做后盾面向对象的特性u封装u把成员方法和成员属性封装到类中,隐藏属性和方法,隐藏方法实现的细节,经过

5、 public protected private static 限定类成员的访问权限,数据被维护在内部,只需经过被授权的成员方法才可以操作;u承继u可以使一个类承继并拥有另一个曾经存在类的成员属性和方法,被承继的类称为父类或基类,承继类为子类。运用 extends 关键字 实现承继关系;u多态u一样的操作或函数、过程可作用于多种类型的对象上并获得不同的结果;u笼统性u把一类对象的共有属性和方法笼统出来,构成类,这种思索方式为笼统;后盾网 人人做后盾模块设计upubllic 公有u定义类的 属性 和 方法 在类内部与外部或子类都可访问,是最开放的权限uprivate 私有的u定义类的 属性 和

6、 方法 只在类内部可以访问,在类的外部或子类都不可访问uprotected 受维护的u定义类的 属性 和 方法 只在类内部或子类可以访问,类的外部不可访问u模块设计u强内聚功能尽量在类的内部完成,弱耦合开放尽量少的方法给外部调用后盾网 人人做后盾模块设计ufinal/最终的u当确定为最终类或方法时,用于阐明该类不能承继,该方法不能重写。比如开发时确定这个方法为最终方法或方案不允许他人重写时可定义为 finaluconst/类常量u定义在类中的常量为类常量,经过 const 关键字来定义,不可以修正,比如定义个人所得税率后盾网 人人做后盾类的静态成员ustaticu一个数据只效力于类即类内部可用

7、,对外不可用。创建对象是极其耗费资源的,因此当一个方法具有比较强的公用性的时候,没有必要为了调用这个方法而重新生成该类的实例。定义的方法或变量在程序第一次加载时即驻留内存,程序终了释放。u静态方法不能被非静态方法重写,构造方法不允许声明为 staticustatic 变量:u经过static声明的成员变量为静态变量或叫类变量,是该类的公共变量,类创建时即存入内存,对该类的一切对象只需一份,是属于类的,不是属于对象的;静态变量可以在任何地方经过类来访问,是类的全局变量,对多个对象来说,静态数据成员只存储一处,可以节省内存。ustatic方法:u用static声明的方法为静态方法或叫类方法,执行该

8、方法时不会将对象援用传给函数,所以我们不能访问非静态成员,只能访问静态方法或静态变量。只能运用关于类的方式如 self static parent 等。运用时不用生成对象即可执行后盾网 人人做后盾援用u$thisu当前对象的援用, 普通出如今方法里, 用于获取类的成员属性或执行类的成员方法uself:u对本类的援用 ,用于获取当前类的静态成员属性或静态成员方法uparent:u对父类的援用,调用父类的方法或属性后盾网 人人做后盾构造方法&析构方法u构造方法u在创建对象时自动执行,没有前往值,用于执行类的一些初始化任务,如对象属性的初始化任务,PHP4中构造方法必需与类同名,PHP5中规定构造方

9、法为_construct(),优点是不受类名的影响,假设不存在 _construct() PHP会搜索与类同名的方法自动执行,假设没有定义构造方法PHP会自动填加一个没有参数和方法体的构造方法,可以在构造方法中传送参数,用于定义属性,留意顺序,尤其是空值时,在父类和子类都定义构造方法时,执行子类的构造方法u析构方法u用于对象在内存中被销毁时自动执行的方法,不带任何参数后盾网 人人做后盾重写与覆盖u子类可以根据需求对从父类承继过来的方法进展覆盖也叫重写,必需和被覆盖的方法有一样方法名。u不能在同类中定义同名方法。u某些时候,父类的方法不能完全满足需求时,可以在子类中重写父类的方法,经过重写主要实

10、现对父类方法的功能扩展后盾网 人人做后盾笼统类与笼统方法u经过 abstract 关键字定义的方法为笼统方法,具有笼统方法的类为笼统类,笼统方法即为没有内容的空方法,要求子类进展完善内容,笼统类不能实例化,只能承继,经过 extends 来实现,笼统类中也可以定义普通方法u父类方法执行方式不确定,但子类都有这个方法u当父类为笼统类时,子类必需重写父类的笼统方法u笼统类里不一定要写笼统方法,但有笼统方法的类必需定义为笼统类u笼统类必需承继运用u笼统方法不能有主体即 . 后盾网 人人做后盾接口uintrerface 接口是一组成员声明方法的集合,包含空的成员方法和常量,空的方法要求承继类去详细实现

11、。成员方法为 public,属性为 const。u笼统类及普通类都可以实现接口,经过关键字 implementsu接口与笼统类的区别:u接口只能用 implements 实现,笼统类用 extends 承继实现u接口没有数据成员,可以定义常量,笼统类可以有u接口没有构造函数,笼统类可以定义构造函数u接口方法都是 public 笼统类方法可用 protected private public 来修饰u一个类可以实现多个接口,但只能承继一个笼统类u接口中不可有成员方法 ,笼统类可以有成员方法后盾网 人人做后盾魔术常量u_CLASS_/前往该类被定义时的名字区分大小写u_METHOD_/前往该方法被

12、定义时的名字区分大小写u_FUNCTION_/前往该函数被定义时的名字区分大小写u_DIR_/假设用在被包括文件中,那么前往被包括的文件所在的目录。它等价于 dirname(_FILE_)注:PHP 5.3.0中新增u_FILE_ /文件的完好途径和文件名。假设用在被包含文件中,那么前往被包含的文件名后盾网 人人做后盾魔术方法uclone/克隆对象u复制一个完全一样的对象,但与原对象没有任何关系,$obj2 = clone $obj;u假设用intval($obj2=$obj)前往1由于只判别内容,intval($obj2 =$obj)前往0由于还要判别援用u_call()u调用一个未定义的方

13、法时,自动执行的魔术函数u2个参数 1:方法名 2:参数数组后盾网 人人做后盾魔术方法u _isset()u检测对象里面的私有成员属性能否存在u _unset()u是个共有的方法,用来删除对象里的私有成员属性u _get()u获取对象未定义的属性时,自动运转的魔术函数u _set()u给未定义的属性赋值时,自动运转的魔术函数u可将set设置的未定义属性存到类的数组类型成员属性get时再找相应变量索引后盾网 人人做后盾魔术方法u _autoload($className) _autoload($className) u 援用一个类时自动执行的函数,可以读入类文件援用一个类时自动执行的函数,可以读入类文件u 可以经过可以经过spl_autoload_register(array(a,run);spl_autoload_register(array(a,run);来指定新来指定新的魔术函数,但是函数要是的魔术函数,但是函数要是staticstatic的的后盾网 人人做后盾对象的相关函数u get_class_methods($class_name)u前往由类的方法名组成的数组,可以指定对象本身来替代 class_nameu get_class_vars()u

温馨提示

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

评论

0/150

提交评论