书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型第六章-面向对象的PHP-2-PHP与MySQL5程序设计-教学课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4915810
  • 上传时间:2023-01-25
  • 格式:PPT
  • 页数:43
  • 大小:2.73MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第六章-面向对象的PHP-2-PHP与MySQL5程序设计-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第六 面向 对象 PHP MySQL5 程序设计 教学 课件
    资源描述:

    1、2023年1月25日星期三PHP+MySQL程序设计1PHP5中的继承中的继承n继承继承是面向对象最重要的特点之一,就是可以实现对类的复用。是面向对象最重要的特点之一,就是可以实现对类的复用。n通过通过“继承继承”一个现有的类,可以使用已经定义的类中的方法和属性。一个现有的类,可以使用已经定义的类中的方法和属性。n继承而产生的类叫做继承而产生的类叫做子类。子类。n被继承的类,叫做被继承的类,叫做父类父类,也被成为,也被成为超类超类。nPHPPHP是单继承的,一个类只可以继承一个父类,但一个父类却可以被多是单继承的,一个类只可以继承一个父类,但一个父类却可以被多个子类所继承。个子类所继承。n从子

    2、类的角度看,它从子类的角度看,它“继承(继承(inheritinherit,extendsextends)”自父类;而从父类自父类;而从父类的角度看,它的角度看,它“派生(派生(derivederive)”子类。它们指的都是同一个动作,只子类。它们指的都是同一个动作,只是角度不同而已。是角度不同而已。n子类不能继承父类的私有属性和私有方法。子类不能继承父类的私有属性和私有方法。n在在PHP5PHP5中类的方法可以被继承,类的构造函数也能被继承。中类的方法可以被继承,类的构造函数也能被继承。n继承的简单例子继承的简单例子n我们分析自然界中的关系,动物类与犬类的关系。我们分析自然界中的关系,动物类

    3、与犬类的关系。2023年1月25日星期三PHP+MySQL程序设计2Dog类继承自animal类。当我们实例化animal类的子类Dog类时,父类的方法setWeight()和getWeight()被继承。我们可以直接调用父类的方法设置其属性$weight,取得其属性$weight。2023年1月25日星期三PHP+MySQL程序设计3构造函数的继承构造函数的继承n有些资料上说有些资料上说PHP5PHP5的构造函数不被继承。的构造函数不被继承。n演示的结果证明,演示的结果证明,PHP5PHP5的构造函数被继承了。的构造函数被继承了。n当子类当子类Dog1Dog1被实例化时,继承的构造函数被调用

    4、了。被实例化时,继承的构造函数被调用了。n屏幕上显示了一句屏幕上显示了一句I am anAnimalI am anAnimal.2023年1月25日星期三PHP+MySQL程序设计4私有变量和方法不被继承私有变量和方法不被继承n私有变量不被继承,私有方法也不被继承。私有变量不被继承,私有方法也不被继承。n另外一种说法,私有变量和属性被继承了,但不能被调用。另外一种说法,私有变量和属性被继承了,但不能被调用。n无论怎么说,都无论怎么说,都不能调用父类的私有属性和私有方法。不能调用父类的私有属性和私有方法。2023年1月25日星期三PHP+MySQL程序设计52023年1月25日星期三PHP+My

    5、SQL程序设计62.2访问控制访问控制n在在PHP5中,可以在类的属性和方法前面加上一个修饰符中,可以在类的属性和方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。),来对类进行一些访问上的控制。2023年1月25日星期三PHP+MySQL程序设计7Private的访问权限的访问权限nprivate不能直接被外部调用,只能由当前对象调用。不能直接被外部调用,只能由当前对象调用。n前面介绍过关于封装的内容前面介绍过关于封装的内容.这里不再重复。这里不再重复。n比如你可以借钱给别人,但不希望别人知道你钱包里面有比如你可以借钱给别人,但不希望别人知道你钱包里面有多少钱。多少钱。

    6、n我们把它用我们把它用private隐藏起来。隐藏起来。2023年1月25日星期三PHP+MySQL程序设计82023年1月25日星期三PHP+MySQL程序设计92023年1月25日星期三PHP+MySQL程序设计10protected的访问权限的访问权限nprotectedprotected修饰的属性和方法只能被子类调用。修饰的属性和方法只能被子类调用。外界无法调用。外界无法调用。2023年1月25日星期三PHP+MySQL程序设计112023年1月25日星期三PHP+MySQL程序设计122023年1月25日星期三PHP+MySQL程序设计13public的访问权限的访问权限n数据的隐藏

    7、和封装是能够帮助我们保护数据的安全性。数据的隐藏和封装是能够帮助我们保护数据的安全性。nPublic修饰的属性和方法,可以被无限制的调用。修饰的属性和方法,可以被无限制的调用。2023年1月25日星期三PHP+MySQL程序设计142023年1月25日星期三PHP+MySQL程序设计152023年1月25日星期三PHP+MySQL程序设计162.3重写(重写(override)n如果从父类继承的方法不能满足子类的需求,可以对其进如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖行改写,这个过程叫方法的覆盖(overrideoverride),),也称为也称为方方法的

    8、重写。法的重写。n当对父类的方法进行重写时,子类中的方法必须和父类中当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法对应的方法具有相同的方法名称,在具有相同的方法名称,在PHP5PHP5中不限制输入参中不限制输入参数类型、参数数量和返回值类型。(数类型、参数数量和返回值类型。(这点和这点和JAVAJAVA不同)不同)n子类中的覆盖方法不能使用比父类中被覆盖方法更严格的子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。访问权限。n声明方法时,如果不定义访问权限。默认权限为声明方法时,如果不定义访问权限。默认权限为publicpublic。2023年1月25日星期三PHP+M

    9、ySQL程序设计17PHP5重写方法重写方法n先设置一个父类,这个父类是先设置一个父类,这个父类是“Dog”类,这个类描述了类,这个类描述了dog的特性。的特性。nDog有有2个眼睛,会跑,会叫。就这样描述先。个眼睛,会跑,会叫。就这样描述先。n我养了一只狗,是只小狗,符合我养了一只狗,是只小狗,符合Dog类的特性,但有所不同。类的特性,但有所不同。n我的小狗有名字,我的小狗太小了,不会大声的叫,只会我的小狗有名字,我的小狗太小了,不会大声的叫,只会哼哼。哼哼。n我们用继承的概念去实现这个设计。我们用继承的概念去实现这个设计。2023年1月25日星期三PHP+MySQL程序设计182023年1

    10、月25日星期三PHP+MySQL程序设计192023年1月25日星期三PHP+MySQL程序设计20重写方法与访问权限重写方法与访问权限n子类中的覆盖方法不能使用比父类中被覆盖方法更严格的子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。访问权限。n父类为父类为public子类为子类为private时。时。2023年1月25日星期三PHP+MySQL程序设计212023年1月25日星期三PHP+MySQL程序设计222023年1月25日星期三PHP+MySQL程序设计23重写时的参数数量重写时的参数数量n子类可以拥有与父类不同的参数数量。子类可以拥有与父类不同的参数数量。(这点与这点

    11、与java不同,不同,PHP是弱类型语言。是弱类型语言。)2023年1月25日星期三PHP+MySQL程序设计242023年1月25日星期三PHP+MySQL程序设计25构造函数重写构造函数重写n下面这个例子中,父类和子类都有自己的构造函数,当子下面这个例子中,父类和子类都有自己的构造函数,当子类被实例化时,子类的构造函数被调用,而父类的构造函类被实例化时,子类的构造函数被调用,而父类的构造函数没有被调用,请对比第一节的构造函数继承。数没有被调用,请对比第一节的构造函数继承。n(注:这点和(注:这点和Java不同,在不同,在java中构造函数是不能被继承的,中构造函数是不能被继承的,而且子类实

    12、例化时,子类的构造函数被调用,父类的构造而且子类实例化时,子类的构造函数被调用,父类的构造函数也会调用。)函数也会调用。)2023年1月25日星期三PHP+MySQL程序设计262023年1月25日星期三PHP+MySQL程序设计272.4 this关键字关键字nPHP5中为解决变量的命名冲突和不确定性问题,引入关键中为解决变量的命名冲突和不确定性问题,引入关键字字n“$this”代表其所在代表其所在当前对象当前对象。n$this在构造函数中指该构造函数所创建的新对象在构造函数中指该构造函数所创建的新对象n在类中使用当前对象的属性和方法,必须使用在类中使用当前对象的属性和方法,必须使用$thi

    13、s-取值。取值。n方法内的局部变量,不属于对象,不使用方法内的局部变量,不属于对象,不使用$this关键字取值。关键字取值。n局部变量和全局变量与局部变量和全局变量与$this关键字关键字n局部变量的只在当前对象的方法内有效,所以直接使用。局部变量的只在当前对象的方法内有效,所以直接使用。n注意:局部变量和属性可以同名,但用法不一样。在使用注意:局部变量和属性可以同名,但用法不一样。在使用中,要尽量避免这样使用,以免混淆。中,要尽量避免这样使用,以免混淆。2023年1月25日星期三PHP+MySQL程序设计282023年1月25日星期三PHP+MySQL程序设计29用用$this调用对象中的其

    14、它方法调用对象中的其它方法2023年1月25日星期三PHP+MySQL程序设计30使用使用$this调用构造函数调用构造函数2023年1月25日星期三PHP+MySQL程序设计31$this到底指的什么?到底指的什么?$this就是指当前对象,我们甚至可以返回这个对象使用$this2023年1月25日星期三PHP+MySQL程序设计32通过通过$this传递对象传递对象2023年1月25日星期三PHP+MySQL程序设计332023年1月25日星期三PHP+MySQL程序设计342.5 parent:关键字关键字nPHP5中使用中使用parent:来引用父类的方法。来引用父类的方法。npare

    15、nt:可用于调用父类中定义的成员方法。可用于调用父类中定义的成员方法。nparent:的追溯不仅于直接父类。的追溯不仅于直接父类。n通过通过parent:调用父类方法调用父类方法2023年1月25日星期三PHP+MySQL程序设计352023年1月25日星期三PHP+MySQL程序设计36父类的父类的private属性属性nPrivate属性是不能被继承的,如果父类有私有的属性。那属性是不能被继承的,如果父类有私有的属性。那么父类的方法只为父类的私有属性服务。么父类的方法只为父类的私有属性服务。n在子类中重新定义了一个属性在子类中重新定义了一个属性$saln系统却返回了父类的属性。系统却返回了

    16、父类的属性。n如果父类中的属性被子类重写了。结果是这样的。如果父类中的属性被子类重写了。结果是这样的。n注意第注意第5行的属性定义变成了行的属性定义变成了protected。2023年1月25日星期三PHP+MySQL程序设计372023年1月25日星期三PHP+MySQL程序设计382023年1月25日星期三PHP+MySQL程序设计39子类中重写的方法对当前private有效2023年1月25日星期三PHP+MySQL程序设计40n如果你学过如果你学过java,你会觉得这一切都是很难理解的。,你会觉得这一切都是很难理解的。n在在Java中当子类被创建时,父类的属性和方法在内存中都中当子类被

    17、创建时,父类的属性和方法在内存中都被创建,甚至构造函数也要被调被创建,甚至构造函数也要被调n用。用。nPHP5不是这样,不是这样,PHP5调用父类用的是调用父类用的是parent:而不是而不是parent-,这足以说明,这足以说明PHP5不想不想n在内存中让父类也被创建。在内存中让父类也被创建。PHP5想让继承变的比想让继承变的比Java更简更简单。单。n适应下就好。适应下就好。父类的父类的private属性属性2023年1月25日星期三PHP+MySQL程序设计412.5重载重载Overloadn当类中的方法名相同时,称为方法的重载当类中的方法名相同时,称为方法的重载(overload)n重载是重载是Java等面向对象语言中重要的一部分。等面向对象语言中重要的一部分。n在在PHP5中不支持重载。中不支持重载。n在在PHP5中不支持重载。中不支持重载。2023年1月25日星期三PHP+MySQL程序设计42如果传递过来三个数值。如何计算?下面的写法,在Java中是太平常不过了。但是在PHP5中,不能这样。PHP5不支持有多个相同名称的方法,也就是不支持重载。2023年1月25日星期三PHP+MySQL程序设计43对于一个方法,缺少参数时候会报错。当参数太多的时候,PHP就当什么都没有看到。程序可以正常运行。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第六章-面向对象的PHP-2-PHP与MySQL5程序设计-教学课件.ppt
    链接地址:https://www.163wenku.com/p-4915810.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库