第6章-PHP面向对象编程课件_第1页
第6章-PHP面向对象编程课件_第2页
第6章-PHP面向对象编程课件_第3页
第6章-PHP面向对象编程课件_第4页
第6章-PHP面向对象编程课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第6章PHP面向对象编程第6章PHP面向对象编程1主要内容面向对象编程的基础知识PHP5中面向对象编程的基本技术PHP5中面向对象编程的高级技术主要内容面向对象编程的基础知识26.1面向对象编程的基础知识面向对象编程的基本概念

对象一个面向对象的应用程序由一系列相关对象构成。对象是封装了属性与方法的实体。属性,对象的静态特征。方法,对象的动态行为。类具有相同特征与操作的一组对象的描述与定义。构造对象的模板或蓝本。一个具体对象则是相应类的一个实例。类和对象的关系,类似于数据类型与变量的关系。类的属性与方法统称为类的成员。基于类的每一个对象,都包含类的方法,但属性取值可能不同。6.1面向对象编程的基础知识面向对象编程的基本概念3面向对象编程的主要特征

封装性,属性与方法置于对象之中,主要目的实现对象的数据隐藏和数据保护,并为对象提供接口。访问对象的数据,只能通过操作实现。有效隐藏对象内部细节,实现对象的相对独立性。类也适用于封装性。封装性是结构化编程技术的逻辑延伸。继承性,从一个类派生出另外一个或多个新类。父类,被继承的类。子类,通过继承派生的类。多态性,同名方法的功能随对象类型或参数定义不同而有所不同。实现方法重载,对类中已有方法重新定义。对某类对象,调用多态方法时所传递的参数或参数个数不同,该方法实现的功能或过程也会不同。面向对象编程的主要特征46.2

PHP面向对象编程的基本技术6.2.1类的创建6.2.2对象的使用6.2.3构造函数的使用6.2.4析构函数的使用6.2.5类属性的访问控制6.2.6类方法的访问控制6.2PHP面向对象编程的基本技术6.2.1类的创建56.2.1

类的创建使用关键字class最简单的类---空类classclassname{}6.2.1类的创建使用关键字class6类的基本格式属性:var方法:function类的基本格式7在类的方法中,可以访问类自身的有关属性格式:$this->propertyname$this特殊变量,指向当前类本身。->,PHP运算符,用于访问属性和方法。访问属性时,属性前无需加$。在类的方法中,可以访问类自身的有关属性8【例6.1】类的创建示例<?php//学生类

classstudent

{

//属性

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.1】类的创建示例96.2.2

对象的使用对象是类的实例创建对象,实例化一个类$objectname=newclassname;访问对象的属性与方法$objectname->propertyname$objectname->methodname(...)销毁对象$objectname=NULL;6.2.2对象的使用对象是类的实例10【例6.2】对象的使用示例<?phpinclude("class_student.php");//学生类$MyStudent=newstudent;//创建学生对象//调用方法(设置学生信息)$MyStudent->setinfo("200600001","卢铭","男");$MyStudent->getinfo();//调用方法(输出学生信息)$MyStudent->xm="卢俊";//访问属性(修改学生姓名)echo"姓名:".$MyStudent->xm;//访问属性(输出学生姓名)$MyStudent=NULL;//销毁对象?>【例6.2】对象的使用示例116.2.3

构造函数的使用构造函数是类中的一个特殊函数(或特殊方法),可在创建对象时自动地加以调用。类中与类同名的函数,构造函数。初始化任务,属性初值,创建其他对象。

在PHP5中,构造函数的名称则是固定的,即必须为__construct。6.2.3构造函数的使用构造函数是类中的一个特殊函数(或12【例6.3】构造函数的使用示例。

<?php

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>";

}

}

$MyStudent=newstudent("200600001","卢铭","男");//创建学生对象

$MyStudent->getinfo();//调用方法(输出学生信息)

$MyStudent->xm="卢俊";//访问属性(修改学生姓名)

echo"姓名:".$MyStudent->xm;//访问属性(输出学生姓名)

$MyStudent=NULL;//销毁学生对象

?>【例6.3】构造函数的使用示例。136.2.4

析构函数的使用析构函数,一个特殊函数。在销毁对象时被自动调用。在PHP5中,则可以使用析构函数,且其名称是固定的,即必须为__destruct。析构函数不能带任何参数。6.2.4析构函数的使用析构函数,一个特殊函数。14【例6.4】析构函数的使用示例<?phpclassstudent//学生类{var$xm;//属性function__construct($xm)//构造函数{ $this->xm=$xm;

echo"学生<".$this->xm.">来啦!<BR>";}function__destruct()//析构函数{ echo"学生<".$this->xm.">走了!<BR>";}}$MyStudent=newstudent("李兵");//创建学生对象$MyStudent=NULL;//销毁学生对象?>【例6.4】析构函数的使用示例156.2.5类属性的访问控制使用访问控制关键字publicprivateprotected6.2.5类属性的访问控制使用访问控制关键字16【例6.5】类属性的访问控制示例。【例6.5】类属性的访问控制示例。17【例6.6】__get()函数与__set()函数的使用示例。【例6.6】__get()函数与__set()函数的使用示例186.2.6类方法的访问控制使用访问控制关键字publicprivateprotected6.2.6类方法的访问控制使用访问控制关键字19【例6.7】类方法的访问控制示例。【例6.7】类方法的访问控制示例。206.3PHP面向对象编程高级技术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.3PHP面向对象编程高级技术6.3.1类的继承216.3.1类的继承继承是面向对象编程的主要特征单重继承,一个子类只能有一个父类子类继承父类的属性和方法父类的private属性和方法不能被继承

定义新的属性和方法重新定义父类的同名属性重新定义父类的同名方法6.3.1类的继承继承是面向对象编程的主要特征22使用关键字extends基本格式:

使用关键字extends23【例6.8】类的继承示例。parent::methname(...);【例6.9】类的继承示例。finalclassstudent_a,不能被继承。【例6.8】类的继承示例。246.3.2方法的重载多态是面向对象的主要特征所谓重载,子类重新定义父类的同名方法6.3.2方法的重载多态是面向对象的主要特征25【例6.10】方法的重载示例。【例6.11】方法的重载示例。final不允许重载【例6.10】方法的重载示例。266.3.3对象的克隆为已存在的对象建立副本副本与原对象具有相同属性与方法也可以改变原对象的某些属性克隆函数:__clone。【例6.12】对象的克隆示例。6.3.3对象的克隆为已存在的对象建立副本276.3.4对象的串行化对象的串行化指将对象转化为一个字符串对象的反串行化指将串行化字符串还原为原来的对象串行化与反串行化,实现对象的保存和传输6.3.4对象的串行化对象的串行化指将对象转化为一个字符28对象串行化,serialize(),参数为对象名,返回值为对象被串行化后的字符串对象的反串行化,unserialize(),参数为对象的串行化字符串,返回值为重新组织好的对象名SLEEP(),包含被串行化的所有属性的数组,关闭数据库连接WAKEUP(),设置属性,重建数据库连接【例6.13】对象的串行化与反串行化示例。对象串行化,serialize(),参数为对象名,返回值为对296.3.5静态成员的使用使用关键字static来进行声明。在类的内部self::$propertynameself::methodname()在类的外部classname::$propertynameclassname::methodname()【例6.14】静态成员的使用示例。6.3.5静态成员的使用使用关键字static来进行声306.3.6抽象方法与抽象类的使用用关键字abstract定义抽象方法,用关键字abstract定义的尚未实现且无任何参数的以";"结束的方法抽象类,用关键字abstract定义的包含多个抽象方法的类抽象类不能被实例化,允许继承抽象类,生成子类,实现部分抽象方法所有抽象方法实现后,抽象类可被实例化【例6.15】抽象方法与抽象类的使用示例6.3.6抽象方法与抽象类的使用用关键字abstract定316.3.7接口的使用使用关键字interface进行定义接口相当于一个抽象类,只有一个抽象方法接口中方法的声明必须与实体的实现相匹配创建类时,使用implemen

温馨提示

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

评论

0/150

提交评论