资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第6章,PHP5,的面向对象编程,万红波 烟台大学 网络中心,主要内容,面向对象编程的基础知识,PHP5,中面向对象编程的基本技术,PHP5,中面向对象编程的高级技术,6.1 面向对象编程的基础知识,面向对象编程的基本概念,对象,属性,方法,类,6.1 面向对象编程的基础知识,面向对象编程的主要特征,封装性,继承性,父类,子类,多态性,6.2,PHP5,中面向对象编程的基本技术,PHP4,和,PHP5,对象模型有所不同;,主要学习,PHP5,中的面向对象的程序设计;,6.2.1 类的创建,使用关键字,class。,例子,var,;,?,在类的方法中,可以访问类自身的有关属性。,格式:,$,this-,propertyname,【例6.1】类的创建示例,xh,=$,xh,;,$this-,xm,=$,xm,;,$this-,xb,=$,xb,;,function,getinfo,(),echo,学号:,.$this-,xh,.;,echo,姓名:,.$this-,xm,.;,echo,性别:,.$this-,xb,.;,?,6.2.2 对象的使用,创建对象,$,objectname,=new,classname,();,访问对象的属性与方法,$,objectname,-,propertyname,$,objectname,-,methodname,(.),销毁对象,$,objectname,=NULL;,6.2.2 对象的使用,【例6.2】对象的使用示例,。,$A=new student();,$A-setinfo(21251,“Jahon,“male);,$A-,getinfo,();,$A=NULL;,6.2.3 构造函数的使用,构造函数是类中的一个特殊函数(或特殊方法),可在创建对象时自动地加以调用。,在,PHP5,中,构造函数的名称则是固定的,即必须为,_,construct,。,6.2.3 构造函数的使用,class student,var,$,xh,;,var,$,xm,;,var,$,xb,;,function _,construct($xh,$xm,$xb,),$this-,xh,=$,xh,;,$this-,xm,=$,xm,;,$this-,xb,=$,xb,;,function,getinfo,(),echo,学号:,.$this-,xh,.;,echo,姓名:,.$this-,xm,.;,echo,性别:,.$this-,xb,.;,$A=new student(23,John,m);,$A-,getinfo,();,6.2.4 析构函数的使用,析构函数在销毁对象时被自动调用。,在,PHP5,中,则可以使用析构函数,且其名称是固定的,即必须为,_,destruct,。,6.2.4 析构函数的使用,class student,var,$,xh,;,var,$,xm,;,var,$,xb,;,function _,construct($xh,$xm,$xb,),$this-,xh,=$,xh,;,$this-,xm,=$,xm,;,$this-,xb,=$,xb,;,function,getinfo,(),echo,学号:,.$this-,xh,.;,echo,姓名:,.$this-,xm,.;,echo,性别:,.$this-,xb,.;,function _destruct(),echo$this-,xm,.destruct!;,6.2.4 析构函数的使用,$A=new student(23,John,m);,$A-,getinfo,();,$A=NULL;,6.2.5 类属性的访问控制,使用访问控制关键字:,public,:公有属性,在类的内部和外部都可以访问;,private,:私有属性,只能在类的内部访问,并且不能,protected,:保护属性,在类内部和子类中可以访问;,6.2.5 类属性的访问控制,class student,private$,xh,;,private$,xm,;,private$,xb,;,function _,construct($xh,$xm,$xb,),$this-,xh,=$,xh,;,$this-,xm,=$,xm,;,$this-,xb,=$,xb,;,function,getinfo,(),echo,学号:,.$this-,xh,.;,echo,姓名:,.$this-,xm,.;,echo,性别:,.$this-,xb,.;,6.2.5 类属性的访问控制,class student,private$,xh,;,private$,xm,;,private$,xb,;,function _,get($propertyname,),if(,isset($this,-$,propertyname,),return($this,-$,propertyname,);,else,return(NULL,);,function _,set($propertyname,$propertyvalue,),$this-$,propertyname,=$,propertyvalue,;,_get,方法,_set,方法,6.2.5 类属性的访问控制,$,MyStudent,=new student(200600001,卢铭,男,);,/,当访问类中的不可见字段的时候,自动调用,_get,方法;,echo,学号:,$,MyStudent,-,xh,.;,echo,姓名:,$,MyStudent,-,xm,.;,echo,性别:,$,MyStudent,-,xb,.;,$,MyStudent,-,xh,=200600002;,$,MyStudent,-,xm,=,刘莉,;,$,MyStudent,-,xb,=,女,;,$,MyStudent,=NULL;,6.2.6 类方法的访问控制,使用访问控制关键字:,public,private,protected,6.2.6 类方法的访问控制,class student,private$,xh,;/,学号(公有属性),private$,xm,;/,姓名(私有属性),private$,xb,;/,性别(保护属性),public function,queryinfo,()/,公有方法,$this-,getinfo,();,private function,getinfo,()/,私有方法,echo,学号:,$this-,xh,.;,echo,姓名:,$this-,xm,.;,echo,性别:,$this-,xb,.;,6.3,PHP5,中面向对象编程的高级技术,6.3.1,类的继承,6.3.2,方法的重载,6.3.3,对象的克隆,6.3.4,对象的串行化,6.3.5,静态成员的使用,6.3.6,抽象方法与抽象类的使用,6.3.7,接口的使用,6.3.8,类方法的调用处理,6.3.9,类文件的自动加载,6.3.1 类的继承,使用关键字,extends。,基本格式:,6.3.1 类的继承,【例6.8】类的继承示例,(student07.php),【例6.9】类的继承示例,(student08.php),final,关键字,在子类中调用父类的方法;,6.3.2 方法的重载,【例6.10】方法的重载示例,(student09.php),【例6.11】方法的重载示例,(student10.php),final,方法;,6.3.3对象的克隆,克隆函数:_,clone。,【例6.12】对象的克隆示例,(student11.php),6.3.4对象的串行化,使用,serialize(),与,unserialize,(),函数。,【例6.13】对象的串行化与反串行化示例,(student12.php),。,6.3.5 静态成员的使用,使用关键字,static,来进行声明。,【例6.14】静态成员的使用示例,(student13.php),。,6.3.6 抽象方法与抽象类的使用,用关键字,abstract,定义。,【例6.15】抽象方法与抽象类的使用示例,。,6.3.7 接口的使用,使用关键字,interface,进行定义。,【例6.16】接口的使用示例,(student15.php),。,6.3.8 类方法的调用处理,使用_,call(),函数。,【例6.17】类方法的调用处理示例,(student16.php),。,6.3.9 类文件的自动加载,使用_,autoload,(),函数。,【例6.18】类文件的自动加载示例,(student17.php),。,
展开阅读全文