PHP面向对象的程序设计总结(整理版).doc_第1页
PHP面向对象的程序设计总结(整理版).doc_第2页
PHP面向对象的程序设计总结(整理版).doc_第3页
PHP面向对象的程序设计总结(整理版).doc_第4页
PHP面向对象的程序设计总结(整理版).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第8章_PHP面向对象的程序设计1.面向对象的概述22.构造方法和析构方法23.封装性3对成员属性封装使用的魔术方法:_set()、_get()、_isset()、_unset()34.继承性45.常见的关键字和魔术方法5Final关键字5Static关键字5Const关键字6单态设计模式:6Clone魔术方法7_toString()魔术方法7_call()魔术方法8_autoload()魔术方法8对象串行化8_sleep()和_wakeup()魔术方法96.多态性11抽象类:11接口:121.面向对象的概述面向对象的程序的最小单位是:对象面向过程的程序的最小单位是:函数 对象可以包含函数对象由两部分组成:成员属性(变量,静态的)和成员方法(函数,动态的);对象是通过类实例化出来的,所有面向对象的编程规则是:先声明类-实例化对象(创建对象)-使用对象。声明类:一些修饰类的关键词 class 类名类中成员(成员属性,成员方法);例如:class PersonPrivate $name;Private $age;Private $sex;Function say();Function eat();实例化对象:$变量名=new 类名称(参数类表);例如:$p1=new Person;对象类型在内存中的分配:内存分为四个部分:栈空间段,堆空间段,数据段和代码段栈:存放对象的地址。堆:存放可变长度的数据:字符串,数组和对象数据段:存放初始化变量,全局变量等代码端:存放执行文件的操作指令(函数)对象中的成员访问:赋值:$引用名-成员属性=值;获取:echo $引用名-成员属性。调用成员方法:$引用名-成员方法。$this代表本对象。2.构造方法和析构方法构造方法:是对象创建完成后第一个被对象自动调用的方法。析构方法:是对象被销毁前自动调用的方法构造方法的作用:为成员属性初始化。Function _construct(参数列表)/构造方法名称是以两个下划线开始的_construct();方法体;析构方法:Function _destruct() /析构方法名称是以两个下划线开始的_destruct();方法体;3.封装性封装性:就是把对象的成员属性和成员方法结合成一个独立的相同单位。并尽可能隐蔽对象的内部细节。封装所有的关键词有:public,private,protect.对成员属性封装使用的魔术方法:_set()、_get()、_isset()、_unset()_set():设置私有属性值时自动调用的魔术方法_get():获取私有属性的值的时候调用的魔术方法_isset():在外部直接查看私有属性是否存在时自动调用的魔术方法_unset():删除对象中私有属性时自动调用的方法。实例:此程序的执行结果:4.继承性类的继承性(扩展性)使所建立的软件具有开放性、可扩充性、增加代码的可重用性、提高软件的可维护性。Php是单继承的父类(基类)-子类(派生类)父类和子类就是一种继承的关系子类可以从父类中继承所有的成员属性和成员方法(除了private类型成员的不能继承)访问类型控制:privateprotectedpublic同一个类中类的子类中所有的外部成员子类中重载父类的方法:子类和声明和父类相同的方法名,即子类覆盖了父类中同名的方法。在子类中也可以改写重载的方法。在类中调用父类的方法用parent:在外部:对象-成员类名:成员注意:如果子类再声明构造方法时,如果父类中已经有了构造方法(子类覆盖),一定要调用一次父类中的构造方法,否则父类中的构造方法就执行不到了,这样有一些的功能就不能自动执行。此程序运行飞结果为:5.常见的关键字和魔术方法Final关键字可以修饰类和成员方法,不能修饰成员属性和常量使用final修饰的类,不能有扩展(继承)使用final修饰的方法,不能被子类覆盖。Static关键字可以修饰成员属性和成员方法静态的成员在同一个类中的所有对象都是公用的静态成员只要类一加载就将静态成员分配到内存的数据段里使用static标识的成员是属于类的,所以要使用类名访问,不能使用对象去访问在类内部使用self代表本类引用静态方法不能访问非静态的成员如果在方法中使用不到非静态成员,最好声明为静态方法。Const关键字只能修饰成员属性,使用const修饰的成员属性时属于类的,所有访问方式和静态成员是一样的,都是通过类名或在成员方法中使用self关键字访问。即在类外部使用类名访问,在类内部使用self访问类中声明常量时必须给初值。单态设计模式:类只有一个对象实例:本程序的执行结果为:Clone魔术方法_toString()魔术方法它是在直接输出对象引用是自动调用的方法实例:此程序的运行结果:_call()魔术方法调用对象中不存在的方法是就会自动调用该魔术方法。_call()需要两个参数:第一个参数:调用不存在的方法是,接收这个不存在的方法的方法名。第二个参数:将不存在飞方法中的参数传到第二个参数内。实例:此程序的执行结果:_autoload()魔术方法注意:其它的魔术方法都是在类中添加起作用。这是一个唯一一个不在类中添加的魔术方法。格式:对象串行化串行化:将一个对象转为二进制串串行化使用的时机:将对象长时间存储在数据库或文件中时将对象在多个PHP文件中传输时串行化函数和反串行化函数:_sleep()和_wakeup()魔术方法在串行化时自动调用的方法_sleep()的作用:就是将一个对象部分串行化只要这个方法中返回一个数组,数组中有几个成员属性就串行化几个成员属性,如果不加这个魔术方法,则所有的成员属性都被串行化_wakeup()的作用:反串行化后对象重新诞生,可以对成员属性进行更改。对对象进行串行化:serializ.class.php文件:Wirte.php文件:Obj.txt文件:对对象进行反串行化:Read.php文件:本程序的执行结果:对对象进行部分串行化:Serialize.class.php文件:Wirte.php文件:Obj.txt文件:没有性别信息对对象进行部分反串行化:Read.php文件:本程序的执行结果没有性别信息6.多态性多态性:调用同一个方法有多种状态。抽象类:是一种特殊的类(在类中可以有抽象方法)。抽象方法:没有方法体的方法(只有方法声明,没有的方法,直接使用分号(;)结束)而且必须用abstract关键字修饰。抽象类:如果一个类中至少有一个抽象方法则这个类就是抽象类,而且必须用abstract关键字修饰。其他方面和普通类一样,在抽象类中可以有多个抽象方法,可以有非抽象的方法,可以有成员属性,可以有常量和静态成员。抽象类的声明:抽象类的特点:抽象类不能实例化对象抽象类的作用:定义抽象类就相当于定义了一种规范,这种规范要求子类去遵守。可以把抽象类看成一个模板。实例:此程序的执行结果:接口:是一种特殊的抽象类接口的特点:所有的成员都必须是公有的(默认的)。接口中所有的方法都要是抽象方法接口中的成员属性只能是常量接口也不能实例化对象接口的声明:实现接口不能使用ext

温馨提示

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

评论

0/150

提交评论