下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1《PHP网站开发项目式教程》教案基本信息说明模块任务12使用PHP面向对象程序设计方法单元数2教学目标知识目标理解面向对象掌握PHP中类和对象的相关内容能力目标能够使用面向对象的概念完成登录功能重点PHP中类和对象的相关内容难点PHP中类和对象的相关内容教学方法与教学手段教学方法项目驱动、启发引导式和小组讨论教学手段通过运行已经设计好的界面效果,引导学生观察需要完成的功能,讲解需要的知识点,共同实现相关功能教学内容面向对象掌握PHP中类和对象的相关内容1.理解面向对象强调面向对象的概念和基本特征通过“小猴子吃蜜桃”这样一个小案例说明面向过程和面向对象的本质区别,理解面向对象的概念;面向对象的基本特征:面向对象的方式有3个基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来展示该对象的功能,封装是通过类来实现的。继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类将直接继承父类的属性和方法,除此之外,子类还可以修改或额外添加新的行为。多态就是把子类对象赋值给父类引用,然后调用父类的方法去执行子类覆盖父类的方法。在PHP中,对象引用并不明确区分是父类引用还是子类引用。2.PHP中类和对象强调添加附件界面的嵌入,显示附件信息的文本框元素的设计面向对象的程序设计中有两个重要概念——类(Class)和对象(Object),对象也被称为实例(Instance)。其中类是对某一批对象的抽象描述,可以把类理解成某种概念;对象则是具体存在的实体。一个类的所有对象都具有相同的数据结构,并且共享相同的实现操作的代码;各个对象又可以拥有各自不同的状态,即私有数据。(1)类的创建与实例化1)定义类PHP面向对象中定义类的简单语法如下:[修饰符]class类名{零到多个属性零到多个方法}每个类的定义都以关键字class开头,后面依次跟着类名,和一对花括号,花括号里面包含着类的属性与方法的定义。注意:类名后面没有圆括号2)类的实例化与访问在声明一个类之后,类只存在于文件中,程序不能直接调用。需要对该类创建一个对象后,程序中才可以使用,创建一个类对象的过程称为类的实例化。类的实例化需要使用new关键字,关键字后面需要指定实例化的类名,格式为:$obj=newclassname;注意:对类进行实例化时,如果需要传递参数,则类名后面必须要圆括号,如果没有参数,加括号或者不加括号效果都相同。(2)类的访问控制类的访问控制是指对属性或方法的访问控制,是通过在前面添加关键字public(公有)、protected(受保护)或private(私有)来实现的。public:被定义为公有的类成员可以在类的外部或内部进行访问。protected:被定义为受保护的类成员则可以被其自身以及其子类和父类访问private:被定义为私有的类成员则只能被其定义所在的类访问,即私有成员将不会被继承。属性必须定义为公有、受保护、私有之一。如果用var定义,则被视为公有,可以将var看做是public关键字的一个别名形式。(3)静态属性和方法在类中还可以定义静态的属性和方法,所谓“静态”是指所定义的属性和方法与类的实例无关,只与类本身有关。静态的属性和方法一般用来包含类要封装的数据和功能,可以由所有类的实例共享。在类中可以使用static关键字定义静态属性和方法。访问静态属性和方法时,需要使用范围解析符“::”,格式如下:classname::$attribute;//访问静态属性classname::Cfunction(); //访问静态方法(4)构造函数和析构函数构造函数是类中的一个特殊函数,当创建一个类的实例时,构造函数将被自动调用,主要功能是对类中的对象完成初始化工作。与构造函数相对的是析构函数,析构函数在类的对象被销毁时自动调用。PHP4中,在类的内部与类同名的函数都被认为是构造函数,在创建类的对象时被自动执行。PHP5以及之后的版本,构造函数用__construct()方法来声明(注意,construct前面是两条下划线),这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要修改相应的构造函数名称了。在PHP5及以后的版本中,为了向下兼容,如果一个类中没有名为__construct()的方法,PHP将搜索一个与类名同名的方法作为构造方法。如果__construct()方法和与类名同名的方法同时存在,优先将__construct()作为构造方法。类的析构函数是“__destruct()”,析构函数不能使用参数。若是在类中声明了该函数,PHP将在对象被销毁前调用该函数,将对象从内存中销毁,节省服务器资源。(5)类的继承1)子类访问父类在PHP中,允许通过继承其它类的方式来调用这些类中已经定义的属性和方法。PHP不支持多继承,因此一个子类只能继承一个父类。可以使用extends关键字来指明类与类之间的继承关系,格式为:classSubclassextendsParclass{}其中Subclass表示子类,Parclass表示父类。子类可以继承父类中的构造函数,也可以定义自己的构造函数。若要在子类内部调用父类的方法,除了使用“$this->”之外,还可以使用“parent::”或者“父类名称::”形式;而对于父类中的属性,在子类中只能使用“$this->”形式进行访问。2)重定义方法的重载是指在一个类中可以定义多个同名的方法,通过参数个数和类型来区分这些方法。PHP并不支持这一特性,但可以通过类的继承在子类中定义与父类中同名的方法来实现类似于方法重载的特性,即重定义。3)关键字final从PHP5开始引入final关键字,在声明类时,若使用这个关键字,则该类将不能被继承。另外,若将关键字final用于声明类中的方法,则该方法将不能在子类中重载。(6)抽象类和接口1)抽象类抽象类是PHP5开始引入的新特性,它是一种特殊的类,使用关键字abstract定义,不能被实例化。一个抽象类中至少包含一个抽象方法,抽象方法也是由abstract关键字定义。抽象方法只提供方法的声明,不提供方法的具体实现。例如:abstractfunctionfunc($name,$num);包含抽象方法的类必须是抽象类。抽象类只能通过继承来使用。继承抽象类的子类,必须重载抽象类中的所有抽象方法才能被实例化。2)接口PHP只能进行单继承,即一个类只能有一个父类。当一个类需要继承多个类的功能时,单继承将无法实现。为了解决这个问题,从PHP5开始引入了接口的概念。接口是通过interface关键字而不是class关键字来定义的,就像定义一个标准的类一样,但其中定义的所有方法都是空的。接口中定义的所有方法都必须是公有方法,这是接口的特性。另外,接口中不能使用属性,但可以使用const关键字定义常量。接口也支持继承,接口之间的继承也使用关键字extends。定义了接口之后,可以将其实例化,接口的实例化称为接口的实现。要实现一个接口需要一个子类来实现接口中所有的抽象方法。定义接口的子类必须使用关键字implements。一个子类可以实现多个接口,通过这种形式即可解决多继承的问题。(7)类的魔术方法PHP规定以两个下划线“__”开头的方法都保留为魔术方法,所以在定义函数名时尽量不要使用“__”开头,除非是为了重载已有的魔术方法1)克隆对象PHP使用clone关键字建立一个与原对象拥有相同属性和方法的对象,若需要改变这些属性,可以使用PHP提供的魔术方法__clone(),这个方法在克隆一个对象时将被自动调用。魔术方法__clone()并不是克隆对象必需的。2)方法重载魔术方法__call()可以用于实现方法的重载。使用该方法的格式为:function__call(arg1,arg2){}参数说明:参数arg1,表示被调用的方法名称;参数arg2,表示传递给该方法的参数数组。若对象访问类中不存在的方法时,__call()方法将被调用。3)访问类的属性通常情况下为了实现类的封装,将类的属性定义为private私有的,此时从类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北住院医师-河北住院医师口腔修复科历年参考题库含答案解析
- 2026年江西科技学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年江西工程学院高职单招笔试英语试题库含答案解析3套试卷
- 2026医疗招聘临床类-麻醉学历年题库含答案详解
- 高校安全考试题目及详细答案
- 消费者行为学课件
- 换届工作典型试题及标准答案
- 心理鉴赏相关试题及答案
- 精英教师学科试题及答案呈现
- 把握自考辅导:试题及答案解析
- 2026-2030中国米粉(米线)行业产销规模调查与投资效益盈利性研究报告
- 六年级上册体育体能评估教学计划
- 2026北京事业单位真题答案解析
- 物业楼管员收费考核制度
- 学校教师培训费管理制度
- GB/T 31897.1-2025灯具性能第1部分:一般要求
- 《人工智能基础与应用高职》全套教学课件
- (11)普通高中信息科技课程标准日常修订版(2017年版2025年修订)
- 外脚手架施工拆除方案
- 公司财务负责人知识培训课件
- 2025年个人租房合同范本(可下载打印版)
评论
0/150
提交评论