PHP应用开发与实践马骏第15章面向对象课件教学.pptVIP

PHP应用开发与实践马骏第15章面向对象课件教学.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PPT研究院 POWERPOINT ACADEMY * * * * 15.8.1 final关键字 final,中文含义是最终的、最后的。被final修饰过的类和方法就是“最终的版本”。如果有一个类的格式为: final class class_name{ //… } 说明该类不可以再被继承,也不能再有子类。 如果有一个方法的格式为: final function method_name() 说明该方法在子类中不可以进行重写,也不可以被覆盖。 这就是final关键字的作用。 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法。静态属性和静态方法不需要在被类实例化的情况下就可以直接使用。 1.静态属性 静态属性就是使用关键字static修饰的成员属性,它属于类本身而不属于类的任何实例。它相当于存储在类中的全局变量,可以在任何位置通过类来访问。静态属性访问的语法如下: 类名称::$静态属性名称 其中的符号“::”被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。 如果要在类内部的成员方法中访问静态属性,那么在静态属性的名称前加上操作符“self::”即可。 2.静态方法 静态方法就是通过关键字static修改的成员方法。由于它不受任何对象的限制,所以可以不通过类的实例化直接引用类中的静态方法。静态方法引用的语法如下: 类名称::静态方法名称([参数1,参数2,……]) 同样如果要在类内部的成员方法中引用静态方法,那么也是在静态方法的名称前加上操作符“self::”。 注意: 在静态方法中,只能调用静态变量,而不能调用普通变量,而普通方法则可以调用静态变量。 使用静态成员,除了可以不需要实例化对象,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。 15.8.2 static关键字——声明静态类成员 【例15-11】 首先,声明一个静态变量$num,声明一个方法,在方法的内部调用静态变量并给变量值加1。然后,实例化类中的对象。最后,调用类中的方法。代码如下。 ?php class Web{ static $num=0; //定义静态变量 public function change(){ //定义change方法 echo 您是本站第.self::$num.位访客.\t;//输出静态变量信息 self::$num++; //静态变量做自增运算 } } $web=new Web(); //实例化对象 echo 第一次实例化调用:br; $web-change(); //对象调用 $web-change(); $web-change(); echo br第二次实例化调用br; $web_wap=new Web(); //改变对象句柄实例化对象 $web_wap-change(); $web_wap-change(); ? 运行结果如图15-15所示。 图15-15 静态变量的使用 如果将程序代码中的静态变量改为普通变量,如“private $num = 0;”,那么结果就不一样了。读者可以动手试一试。 说明: 静态成员不用实例化对象,当类第一次被加载时就已经分配了内存空间,所以直接调用静态成员的速度要快一些。但如果静态成员声明得过多,空间一直被占用,反而会影响系统的功能。这个尺度只能通过实践积累才能真正地把握。 1.克隆对象 对象的克隆可以通过关键字clone来实现。使用clone克隆的对象与原对象没有任何关系,它是将原对象从当前位置重新复制了一份,也就是相当于在内存中新开辟了一块空间。clone关键字克隆对象的语法格式如下: $克隆对象名称=clone $原对象名称; 对象克隆成功后,它们中的成员方法、属性以及值是完全相同的。如果要为克隆后的副本对象在克隆时重新为成员属性赋初始值,那么就要使用到下面将要介绍的魔术方法“__clone()”。 2.克隆副本对象的初始化 魔术方法“__clone()”可以为克隆后的副本对象重新初始化。它不需要任何参数,其中自动包含$this和$that两个对象的引用,$this是副本对象的引用,$that则是原本对象的引用。 15.8.3 clone关键字——克隆对象 【例15-12】 本例中,在对象$book1中创建__clone()方法,将变量$object_type的默认值从book修改为computer。使用对象$book1克隆出对象$book2,输出$boo

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档