欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《PHP面向对象编程》PPT课件.ppt

    • 资源ID:27181446       资源大小:880.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《PHP面向对象编程》PPT课件.ppt

    2022年7月22日星期五IT Education & Training2022-7-22主要内容 面向对象编程的基础知识 PHP5中面向对象编程的基本技术 PHP5中面向对象编程的高级技术 2022年7月22日星期五IT Education & Training2022-7-22面向对象编程的基础知识 什么叫面向对象(OOP Object Oriented Programming) 起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。但这个定义显然不能再适合现在情况。 面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。2022年7月22日星期五IT Education & Training2022-7-22面向对象的基本概念 对象 :对象是人们要进行研究的任何事物,它不仅能表示具体的事物还可以是抽象的事物. 对象的属性和行为 :对象用数据值来描述状态。 行为就是操作可以改变对象的状态. 类 :具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,类实际上就是一种数据类型。 类的属性与方法通常又统称为类的成员成员。2022年7月22日星期五IT Education & Training2022-7-22面向对象的特征 封装:类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护 继承是指子类可以拥有父类所有的属性和方法, 除了这些以外,子类自己还可以创建新的方法和属性 多态:同一操作作用在不同对象上所的结果不一样,这 就是多态。也就是同一函数在不同的对象中所实现的功能不一样。2022年7月22日星期五IT Education & Training2022-7-22创建类 定义类 class ClassName /包含属性和方法 class:关键字,说明声明了一个类 ClassName: 类名。满足标识符的规定2022年7月22日星期五IT Education & Training2022-7-22创建对象 对象是通过类实例化出来的, 使用new 关键字来生成一个对象 语法: $对象名称= new 类名称(); 如定义了Person后,创建该类的对象$p1=new Person(); $p2=new Person();2022年7月22日星期五IT Education & Training2022-7-22使用对象中的成员 PHP 对象中的成员有两种一种是成员属性,一种是成员方法.访问对象中的成员就要使用一个特殊的操作符“-”来完成对象成员的访问. 语法:对象-属性对象-方法 如:$p1-name; $p1-age; $p1-sex; $p1-say(); $p2-run();2022年7月22日星期五IT Education & Training2022-7-22$this 的使用 在类的外部,访问对象中的成员,可通过“对象-成员”的形式 在类的内部,访问类的成员(属性或方法), 使用 ”$this-成员“,代表本对象的引用 如: 2022年7月22日星期五IT Education & Training2022-7-22构造方法 构造方法是特殊方法。当使用new 这个关键字来创建一个对象时,它将自动调用构造方法。 PHP5中,构造方法的名称统一为_ _construct( )。 PHP4中如果一个方法与类同名时,这个方法将成为构造方法. 与类同名的构造方法在PHP5 中仍然可以用,但现在很少有人用,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数 构造方法可以给对象做初始化的工作 格式:function _ _construct ( 参数 ) . . 2022年7月22日星期五IT Education & Training2022-7-22构造方法注意: 当与类同名的构造方法和_construct()同时存在时,后者优先 调用有参构造方法创建对象,必须向构造方法中传参。 $p=new Person(张三,20); 定义构造方法时可以给参数设置默认值,如此,可以调用无参的构造方法创建对象。2022年7月22日星期五IT Education & Training2022-7-22析构方法 PHP5中,引入析构方法的概念,可以及时释放对象所占用的内存 析构方法_destruct()该方法没有参数,也没有返回值该方法在脚本关闭或对象引用被删除前被调用析构方法可用于关闭数据库,关闭文件或其他扫尾工作 function _ _destruct() echo 对象即将销毁; 2022年7月22日星期五IT Education & Training2022-7-22封装 封装是面向对象三大特征之一,含义有两层:把对象的属性和方法结合在一起尽可能隐藏对象的内部细节,对外只保留有限的接口 反映在设计上就是,封装可以保证对象以外的部分不能随意读写对象的内部数据 PHP中封装涉及到的三个关键字public ,protected,private2022年7月22日星期五IT Education & Training2022-7-22类成员的可见性 为控制类成员的可见性,限定对属性和方法的访问,使用以下三种访问修饰符public 表示全局,类内部外部子类都可以访问;protected表示受保护的,只有本类或子类或父类中可以访问;private表示私有的,只有本类内部可以使用; 注意:只要属性前有修饰符,要把var去掉,var等同public的访问权限2022年7月22日星期五IT Education & Training2022-7-22_ _set() , _ _get()方法应用方法应用 _set()方法:该方法有两个参数,第一个参数为要设置值的属性名,第二个参数是要给属性设置的值,没有返回值。在直接设置私有属性值的时候自动调用. _get()方法:该方法用来获取私有成员属性值,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,该直接获取私有属性的时候对象自动调用的 注意:两个方法是为了存取私有属性,如果成员属性不封装成私有的,对象本身就不会去自动调用这两个方法。2022年7月22日星期五IT Education & Training2022-7-22继承 PHP中,只支持单重继承 通过继承生成的子类,将自动拥用父类的有关属性和方法(父类中的私有成员除外) 子类还可以定义自己的新属性和相应的新方法 必要时,子类可重新声明父类的同名属性或重新定义父类的同名方法 继承使用extends关键字 class B extends A 2022年7月22日星期五IT Education & Training2022-7-22继承 子类覆盖父类中同名的方法时,在子类里可以使用如下两个方法调用父类方法:一种是使用父类的“类名:”来调用父类中被覆盖的方法;一种是使用“parent:”的方试来调用父类中被覆盖的方法;2022年7月22日星期五IT Education & Training2022-7-22访问修饰符-protected protected 的成员不能被该类的外部代码访问。但是该类的子类有访问权限,可以进行属性、方法的读及写操作,该子类的外部代码包括其的子类都不具有访问其属性和方法的权限。2022年7月22日星期五IT Education & Training2022-7-22final关键字 Final 可以修饰类和方法 被final修饰的类不能被继承 被final修饰的方法不能被覆盖2022年7月22日星期五IT Education & Training2022-7-22static关键字static 修饰的属性是静态属性,静态属性是属于类的,不属于任何对象实例,这样的属性在内存中只有一个,多个对象共用这一个属性静态属性不可以由对象通过-操作符来访问。 静态属性由类名:$静态属性来访问如:2022年7月22日星期五IT Education & Training2022-7-22static关键字 static修饰的方法称为静态方法,静态方法只能使用静态成员,不能访问非静态成员 静态方法中访问静态属性不能使用$this,而是使用 self:$静态属性或是类名:静态属性 非静态方法中访问静态属性也是使用 self:$静态属性或是类名:静态属性 类外访问静态方法可以使用类名:静态方法直接调用,也可以使用对象直接调用2022年7月22日星期五IT Education & Training2022-7-22const关键字 PHP中定义常量使用define()函数,但在类里使用const定义常量,常量的值不能被修改 在类外面使用时使用类名:常量名(没有$),方法内使用时使用self:常量名 如:2022年7月22日星期五IT Education & Training2022-7-22_toString()方法 当定义一个对象如:$a=new Student(); echo $a 这时运行将报错 如果在类中定义_toString()方法,输出对象引用时将自动调用该方法,并输出该方法的返回值,且_toString()方法要有return语句2022年7月22日星期五IT Education & Training2022-7-22克隆对象 如果使用两个或多个一样的对象,可以使用clone关键字克隆出一模一样的对象 如果$t1=new Person(); $t2=$t1,则对其中任何一个做属性的修改,都将影响另一个,而克隆的两个对象互不打扰 PHP5中定义了一个特殊的方法_clone(),在对象克隆时自动调用,如果想克隆后改变原对象的内容,则需在该方法中重写原本的属性和方法。2022年7月22日星期五IT Education & Training2022-7-22_call()方法处理调用错误 使用对象调用方法时,如果方法不存在,运行时程序就会退出不能继续执行 如果定义了_call()方法,在试图使用对象调用不存在的方法时,就会提示调用的方法和使用的参数不存在,但程序仍可以继续执行 该方法声明时包含两个参数,第一个参数是string型,是调用不存在方法的方法名(如$fname),第二个参数是array型,是调用的不存在的方法的参数(如$argus)。 2022年7月22日星期五IT Education & Training2022-7-22_autoload() 函数 调用一个类的时候,必须要先将该类所在的文件引入(include “xxx.php”),如果我们在一个页里调用的类很多,那么我们不得不使用许多的include “xxx.php”。显然这样很麻烦。 遇到上述情况,只要定义_autoload() 函数可以帮助我们解决问题 该函数不是类方法,是独立的方法,有一个string类型的参数是声明不存在类的类名,如下:function _autoload($className)include $className.php;2022年7月22日星期五IT Education & Training2022-7-22抽象方法和抽象类 在类中没有方法体的方法称为抽象方法,即方法名后面没有大括号和具体内容,方法名后直接是分号.抽象方法使用abstract来修饰如:abstract function fun1(); 如果类中有抽象方法,那么该类就要被abstract修饰,该类称为抽象类 抽象类必须有抽象方法,但也可以有成员属性和非抽象的方法2022年7月22日星期五IT Education & Training2022-7-22抽象方法和抽象类 抽象类是一种规范,要求子类去遵守,子类继承抽象类后,按照子类的需要将抽象类中的抽象方法实现 抽象方法是作为子类重载的模板来使用,子类继承抽象类时必须将其中的抽象方法全部实现,否则子类仍然不能被实例化2022年7月22日星期五IT Education & Training2022-7-22接口 PHP不支持多继承,为了解决该问题,引入接口的概念 抽象类是一种特殊的类,接口是一种特殊的抽象类,当类中所有的方法都是抽象方法时,此时就换一种称谓,类就叫做接口 接口中不能声明变量,接口中所有的成员都是public权限的,包括子类实现时也要使用public权限 接口的声明interface 接口名2022年7月22日星期五IT Education & Training2022-7-22接口 接口中可以定义常量,且要赋初值。 接口中所有的方法都是抽象的,所以可以将abstract去掉 接口中所有方法的访问权限都是public,所以也可以将public去掉 接口可以使用extends继承其他接口2022年7月22日星期五IT Education & Training2022-7-22接口的实现 定义一个子类,使用关键字implements 实现接口中的全部抽象方法 一个类可以同时实现多个接口 一个类既可以继承一个父类,又可以同时实现多个接口2022年7月22日星期五IT Education & Training2022-7-22instanceof运算符 该运算符可以判断一个对象是否是一个类的实例 $c=new Child; if($c instanceof Child) echo “yes;输出yes2022年7月22日星期五IT Education & Training2022-7-22多态 多态性是指一段程序能够处理多种类型对象的能力 PHP中虽然可以实现多态,但和c+还有Java这些面向对象的语言相比,多态性并不是那么突出,因为PHP本身就是一种弱类型的语言,不存在父类对象转化为子类对象或者是子类对象转化为父类对象的问题 重载和重写:PHP的同一个类中不能出现同名方法,所以所谓的重载其实和Java中的重写类似,指的是在子类中可以重新定义父类中的方法。 2022年7月22日星期五IT Education & Training2022-7-22对象串行化 两种情况我们必须把对象串行化,第一种情况就是把一个对象在网络中传输的时候要将对象串行化,第二种情况就是把对象写入文件或是数据库的时候用到串行化。 串行化有两个过程,一个是串行化,就是把对象转化为二进制的字符串,我们使用serialize()函数来串行化一个对象,另一个是反串行化,就是把对象转化的字符串再转化为对象, 我们使用unserialize()函数来反串行化一个对象. 2022年7月22日星期五IT Education & Training2022-7-22serialize()函数 PHP中serialize()函数的参数为对象名,返回值为一个字符串,Serialize()返回的字符串含义模糊,一般我们不会解析这个串来得到对象的信息,我们只要把返回来的这个字符串传到网络另一端或是保存到方件中即可。 2022年7月22日星期五IT Education & Training2022-7-22unserialize()函数 PHP中unserialize()函数来反串行化对象,这个函数的参数即为serialize()函数的返回值,输出当然是重新组织好的对象. 2022年7月22日星期五IT Education & Training2022-7-22_sleep()函数和_wakeup()函数 在对象串行化的时候,会调用一个_sleep()函数来完成一些睡前的事情;而在重新醒来,即由二进制串重新组成一个对象的时候,则会自动调用PHP的另一个函数_wakeup(),做一些对象醒来就要做的动作。 _sleep()函数不接受任何参数, 但返回一个数组,其中包含需要串行化的属性。末被包含的属性将在串行化时被忽略,如果没有_sleep()方法,PHP将保存所有属性。 2022年7月22日星期五IT Education & Training2022-7-22课堂练习 编写一个图书信息类Book。 属性受保护的,包括书名bookName,作者author,价格price 提供有参构造方法,析构方法,访问器方法(如果价格赋值不是数字,则将价格赋值为0),输出图书信息的方法displayBook。 创建对象测试该类2022年7月22日星期五IT Education & Training2022-7-22课堂练习 编写一个小说信息类Novel继承Book类。 添加私有属性小说描述desc。 添加有参构造方法,允许使用者通过构造方法为所有属性赋值。 重载displayBook方法,将小说所有信息以表格形式打印出来。 提供克隆方法,当克隆一个新的小说对象时,要求将desc的值设为“待添加”。 编写displayDesc方法,用绿色背景的div显示小说的描述信息。2022年7月22日星期五IT Education & Training2022-7-22课堂练习 实现:当打印小说对象时,会输出当前的小说名称(红色字体,带书名号)。 实现:当用户调用display(1)的时候,运行displayBook方法,调用display(2)的时候,运行displayDesc方法。 实现:小说对象可以序列化,除了desc外的其他属性都进行序列化。小说对象被反序列化时,price的值设置为0。2022年7月22日星期五IT Education & Training2022-7-22课堂练习 编写类DisplayTable,用来以表格形式显示指定数据库中的任意数据表的信息。 属性:数据库的主机名用户名密码数据库名表名结果集2022年7月22日星期五IT Education & Training2022-7-22课堂练习 方法:构造方法:连接数据库服务器,选择数据库,执行SQL语句,获得结果集对象打印数据表方法:将数据表中的所有信息显示到浏览器上。2022年7月22日星期五IT Education & Training2022-7-22答疑结束结束

    注意事项

    本文(《PHP面向对象编程》PPT课件.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开