您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第6章 PHP5的面向对象编程
第6章PHP5的面向对象编程万红波烟台大学网络中心主要内容面向对象编程的基础知识PHP5中面向对象编程的基本技术PHP5中面向对象编程的高级技术6.1面向对象编程的基础知识面向对象编程的基本概念对象属性方法类6.1面向对象编程的基础知识面向对象编程的主要特征封装性继承性父类子类多态性6.2PHP5中面向对象编程的基本技术PHP4和PHP5对象模型有所不同;主要学习PHP5中的面向对象的程序设计;6.2.1类的创建使用关键字class。例子?phpclassSimpleClass{//memberdeclarationvar$var='adefaultvalue';//methoddeclarationfunctiondisplayVar(){echo$this-var;}}?在类的方法中,可以访问类自身的有关属性。格式:$this-propertyname【例6.1】类的创建示例?phpclassstudent{var$xh;var$xm;var$xb;functionsetinfo($xh,$xm,$xb){$this-xh=$xh;$this-xm=$xm;$this-xb=$xb;}functiongetinfo(){echo学号:.$this-xh.br/;echo姓名:.$this-xm.br/;echo性别:.$this-xb.br/;}}?6.2.2对象的使用创建对象$objectname=newclassname();访问对象的属性与方法$objectname-propertyname$objectname-methodname(...)销毁对象$objectname=NULL;6.2.2对象的使用【例6.2】对象的使用示例。$A=newstudent();$A-setinfo(21251,“Jahon,“male);$A-getinfo();$A=NULL;6.2.3构造函数的使用构造函数是类中的一个特殊函数(或特殊方法),可在创建对象时自动地加以调用。在PHP5中,构造函数的名称则是固定的,即必须为__construct。6.2.3构造函数的使用classstudent{var$xh;var$xm;var$xb;function__construct($xh,$xm,$xb){$this-xh=$xh;$this-xm=$xm;$this-xb=$xb;}functiongetinfo(){echo学号:.$this-xh.br/;echo姓名:.$this-xm.br/;echo性别:.$this-xb.br/;}}$A=newstudent(23,John,m);$A-getinfo();6.2.4析构函数的使用析构函数在销毁对象时被自动调用。在PHP5中,则可以使用析构函数,且其名称是固定的,即必须为__destruct。6.2.4析构函数的使用classstudent{var$xh;var$xm;var$xb;function__construct($xh,$xm,$xb){$this-xh=$xh;$this-xm=$xm;$this-xb=$xb;}functiongetinfo(){echo学号:.$this-xh.br/;echo姓名:.$this-xm.br/;echo性别:.$this-xb.br/;}function__destruct(){echo$this-xm.destruct!;}}6.2.4析构函数的使用$A=newstudent(23,John,m);$A-getinfo();$A=NULL;6.2.5类属性的访问控制使用访问控制关键字:public:公有属性,在类的内部和外部都可以访问;private:私有属性,只能在类的内部访问,并且不能protected:保护属性,在类内部和子类中可以访问;6.2.5类属性的访问控制classstudent{private$xh;private$xm;private$xb;function__construct($xh,$xm,$xb){$this-xh=$xh;$this-xm=$xm;$this-xb=$xb;}functiongetinfo(){echo学号:.$this-xh.br/;echo姓名:.$this-xm.br/;echo性别:.$this-xb.br/;}}6.2.5类属性的访问控制classstudent{private$xh;private$xm;private$xb;function__get($propertyname){if(isset($this-$propertyname))return($this-$propertyname);elsereturn(NULL);}function__set($propertyname,$propertyvalue){$this-$propertyname=$propertyvalue;}}__get方法__set方法6.2.5类属性的访问控制$MyStudent=newstudent(200600001,卢铭,男);//当访问类中的不可见字段的时候,自动调用__get方法;echo学号:$MyStudent-xh.BR;echo姓名:$MyStudent-xm.BR;echo性别:$MyStudent-xb.BR;$MyStudent-xh=200600002;$MyStudent-xm=刘莉;$MyStudent-xb=女;$MyStudent=NULL;6.2.6类方法的访问控制使用访问控制关键字:publicprivateprotected6.2.6类方法的访问控制classstudent{private$xh;//学号(公有属性)private$xm;//姓名(私有属性)private$xb;//性别(保护属性)publicfunctionqueryinfo()//公有方法{$this-getinfo();}privatefunctiongetinfo()//私有方法{echo学号:$this-xh.BR;echo姓名:$this-xm.BR;echo性别:$this-xb.BR;}}6.3PHP5中面向对象编程的高级技术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)。
本文标题:第6章 PHP5的面向对象编程
链接地址:https://www.777doc.com/doc-6327299 .html