第6章面向对象编程教学设计.docx
- 文档编号:23717934
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:19
- 大小:23.34KB
第6章面向对象编程教学设计.docx
《第6章面向对象编程教学设计.docx》由会员分享,可在线阅读,更多相关《第6章面向对象编程教学设计.docx(19页珍藏版)》请在冰豆网上搜索。
第6章面向对象编程教学设计
传智播客
《PHP网站开发实例教程》
教学设计
课程名称PHP网站开发实例教程
授课年级:
2015年级
授课学期:
2015学年第二学期
教师姓名:
某某老师
201年月日
课题名称
第6章面向对象编程
计划课时
5课时
内容分析
面向对象是一种符合人类思维习惯的编程思想。
现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。
在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。
PHP作为一种流行的编程语言,同样支持面向对象编程,本章就通过几个案例学习如何使用PHP进行面向对象编程。
教学目标
●理解面向对象思想,能够分析面向对象与面向过程的区别
●掌握类与对象的使用,可以正确定义类并实例化对象
●掌握构造方法与析构方法,能够将其运用到类的定义中
●掌握继承的使用,能够通过继承扩展类的功能
●了解接口与抽象类,能够封装一个简单的接口或抽象类
重点及措施
教学重点:
类与对象的使用,构造方法与析构方法,继承的使用。
措施:
通过上机操作加强学习和测试题进行巩固。
难点及措施
教学难点:
构造方法、静态成员的使用、单例模式、自动加载、继承、多态、魔术方法、抽象类、接口。
措施:
通过上机操作加强学习和课后测试题进行巩固。
教学方式
教学采用教师课堂讲授为主,使用教学PPT讲解。
教
学
过
程
第一课时
(【案例28】体验类与对象、【案例29】文件上传)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习第三章“PHP操作数据库”的基础知识。
1、请提问上传文件时,使用超全局变量$_FILE获取得文件信息中都包含什么信息?
答案:
文件的名字,文件的大小,文件的临时路径,文件的类型,文件上传是否有错。
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
【案例28】体验类与对象
✧案例描述
面向对象思想,就是把所有事物都看做一个独立的对象,每个对象都有自己的方法,通过调用对象的方法来解决问题。
接下来就通过创建一个简单的类来体验什么是类与对象。
✧案例讲解
Ø案例分析
•创建studet.class.php文件,在文件中定义学生类并介绍定义类的语法格式。
•定义成员属性及成员方法,分别介绍成员属性及成员方法的含义。
•根据已有的学生类,创建学生对象,介绍类与对象的关系。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“面向对象的概念”、“类与对象的关系”等。
Ø讲解“面向对象的概念”
(1)、教师阐述面向对象的概念。
(2)、讲解面向对象的特点,并分别给出解释。
1、封装性2、继承性3、多态性
(3)、学生自主提问,教师对疑难问题进行解答。
Ø讲解“类与对象的关系”
(1)、简单阐述类与对象的关系。
(2)、学生自主提问,教师对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
面向对象的思想、面向对象的特点、类与对象的关系。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
【案例29】文件上传类
✧案例描述
文件上传是网站中会被多次使用的功能,例如用户修改信息时,选择上传本地图片以修改头像;录入商品信息时,选择上传商品图片以做展示等。
不论是上传头像还是商品图片,其实现原理是一样的。
因此可以把文件上传功能封装成一个类,当需要使用文件上传功能时,实例化文件上传类,通过调用对象方法来完成文件上传。
✧案例讲解
Ø案例分析
•分析上传文件需要哪些固定参数,将其转换为类的成员属性。
•在类中编写成员方法,实现文件上传的核心功能。
•编写HTML模板文件,提供上传表单,用来测试文件上传类。
•编写处理文件上传的PHP脚本,在该脚本中实例化文件上传类,实现文件上传。
•优化文件上传类,使用构造方法对实例化对象进行初始化操作。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“构造方法”、“析构方法”、“访问修饰限定符”等。
Ø讲解“构造方法”
(1)、讲解什么是构造方法,并阐述构造方法的作用。
(2)、讲解当一个类中存在两个构造方法时执行顺序是什么。
(3)、学生自主提问,教师对疑难问题进行解答。
Ø讲解“析构方法”
(1)、讲解什么是析构方法,并阐述析构方法的作用。
(2)、学生自主提问,教师对疑难问题进行解答。
Ø讲解“访问修饰限定符”
(1)、讲解PHP中访问修饰限定符public、protected和private的作用。
(2)、学生自主提问,教师对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
构造方法的使用、析构方法的使用、访问修饰限定符的使用。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“析构方法”和“访问修饰限定符”
学完知识点后,让学生讲解构造方法的的调用时机。
请学生练习访问修饰限定符的使用方法,了解访问修饰限定符的特性。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø预习6.3节【案例30】静态工具类。
Ø预习6.4节【案例31】数据库操作类。
Ø预习6.5节【案例32】类库自动加载。
Ø复习本章所有知识点和案例,加强巩固。
第二课时
(【案例30】静态工具类、【案例31】数据库操作类、【案例32】类库自动加载)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。
1、请学生回答在面向对象中,类与对象的关系是什么?
答案:
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。
类用于描述多个对象的共同特征,它是对象的模板。
对象用于描述现实中的个体,它是类的实例。
2、请学生回答访问限定修饰符的作用?
答案:
public:
公有修饰符,类中的成员将没有访问限制,所有的完不成员都可以访问这个类的成员,如果类的成员没有指定访问修饰符,则默认为public。
protected:
保护成员修饰符,被修饰为protected的成员不能被该类的外部成员代码访问,对是对于该类的子类可以对其访问、读写等。
private:
私有修饰符,被定义为private的成员,对于同一个类里的成员是可见的,没有访问限制,但不允许该类的外部代码访问,对于该类的子类同样也不能访问。
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
【案例30】静态工具类
✧案例描述
在项目开发中,有些功能可能会频繁使用。
例如,商品添加、删除、修改等操作执行成功或失败时,提示相关信息并跳转到指定页面;需要显示时间时,把时间戳进行格式化输出;显示中文字符串时,按照要求截取指定长度的字符串等等。
这些功能实际上就是一个个函数,但是过多的函数容易导致重名,并且不易于管理。
因此可以声明一个工具类,让这些功能成为工具类的成员方法。
不过一般的成员方法需要通过对象来调用,而这些功能实际上与对象本身并没有太大关联,那么如何不进行实例化而调用这些方法呢。
PHP就提供了静态成员方法来帮助我们解决这类问题,接下来就通过一个静态工具类,来学习静态成员的使用。
✧案例讲解
Ø案例分析
•
(1)创建静态工具类,封装静态方法。
•
(2)修改【案例15】,调用工具类的静态方法,完成弹窗跳转功能。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“声明静态成员”、“访问静态成员”等。
Ø讲解“声明静态成员”
(1)、讲解什么是静态成员。
(2)、讲解怎么声明静态成员。
(3)、学生提问,老师对疑难问题进行解答。
Ø讲解“访问静态成员”
(1)、讲解访问静态成员的方法。
(2)、学生提问,老师对疑难问题进行解答。
Ø讲解“类常量”
(1)、讲解定义类常量的方法。
(2)、讲解类常量的命名规则。
(3)、讲解类常量的访问方法。
(4)、学生提问,老师对疑难问题进行解答。
说明:
在操作演示的过程中,鼓励学生自行尝试。
小组之间可以协作讨论,教师对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
声明静态成员、访问静态成员、类常量。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“声明静态成员”、“访问静态成员”、“声明类常量”和“访问类常量”
学完知识点后,让学生练习静态成员的访问,类常量的访问。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
本课时内容学习
【案例31】数据库操作类
✧案例描述
在网站开发中,对数据库的操作是十分常见的。
在前面的章节,我们通过面向过程的方式,完成了一个数据库操作函数库。
在学习面向对象之后,我们可以再通过面向对象的方式,来封装一个数据库操作类。
✧案例讲解
Ø案例分析
•把数据库连接信息作为成员属性私有化,禁止外部成员访问。
•编写初始化属性方法,用于在不同情况下输入不同的数据库参数。
•编写获取数据库连接方法,根据初始化后的属性获取数据库连接资源。
•编写选择字符集和默认数据库的方法,为操作数据库做前期准备。
•编写构造方法,当实例化对象时自动调用各方法,达到初始化数据库对象的目的。
•编写SQL语句执行方法,主要提供在执行失败时的错误信息。
•编写处理数据的方法,用于从结果集中获取查询结果。
•编写安全转义方法,将可能影响SQL语句执行的特殊字符进行转义。
•修改数据库操作类,限制脚本实例化多个数据库对象。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“单例模式”、“对象的克隆”等。
Ø讲解“单例模式”
(1)、介绍什么是单例模式。
(2)、学生提问,老师对疑难问题进行解答。
Ø讲解“对象的克隆”
(1)、介绍对象克隆的方法。
(2)、讲解__clone的使用方法。
(3)、学生提问,老师对疑难问题进行解答。
说明:
在系统安装完成后,查看学生安装状况。
并让小组之间协作讨论,对小组的疑难问题进行解答。
✧阶段小结
Ø小结
重点:
单例模式,对象的克隆。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“单例模式”
学完知识点后,让学生练习单例模式。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
本课时内容学习
【案例32】类库的自动加载
✧案例描述
在业务需求越来越复杂的情况下,一个脚本中需要加载的类文件也会越来越多。
例如,当一个程序需要实例化100个类时,就需要用include或require引入100个类文件,或者把100个类定义在一个文件中,这两种方法都有局限性。
那么有没有一种方法,可以在实例化对象时,自动找到类文件进行加载呢,PHP提供的__autoload()方法就帮助我们解决了这个问题。
✧案例讲解
Ø案例分析
•定义__autoload()方法,实现简单的自动加载。
•为测试自动加载功能,定义两个类文件。
•编写PHP脚本,在不包含类文件的情况下,实例化类对象。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“自动加载”、“更灵活的自动加载”等。
Ø讲解“自动加载”
(1)、认识魔术方法__autoload()。
(2)、学生提问,老师对疑难问题进行解答。
Ø讲解“更灵活的自动加载”
(1)、讲解更灵活自动加载的函数“spl_autoload_register()”。
(2)、学生提问,老师对疑难问题进行解答。
说明:
在老师演示完成后,查看学生的理解状况。
并让小组之间协作讨论,对小组的疑难问题进行解答。
✧阶段小结
Ø小结
重点:
自动加载,更灵活的自动加载。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“自动加载”、“更灵活的自动加载”
学完知识点后,让学生通过案例来练习自动加载技术的应用,并着重练习更灵活的自动加载。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø复习前面学过的知识点和案例,加强巩固。
第三课时
(【案例33】模型类、【案例34】抽象类和接口)
复习上节课内容
在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。
1、类中怎么声明静态成员属性和静态成员方法?
答案:
在变量或者方法前使用static关键字指定成员的类型。
2、使用单例模式的目的是什么?
答案:
单例模式是PHP中的一种设计模式,它是指在设计一个类时,需要保证在整个程序运行期间针对该类只存在一个实例对象。
3、自动加载的工作机制是什么样的?
当需要类定义文件而没有找到时,会自动的调用__autoload()函数实现文件的自动加载,它不局限于实例化对象,还包括继承,序列化操作。
说明:
教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习
【案例33】模型类
✧案例描述
WEB项目的所有功能,基本上都是围绕数据库的增、删、改、查来实现的。
虽然我们已经封装了数据库操作类,能够快捷的实现数据的增删改查,但仍然需要自己组合数据,创建SQL语句。
在项目中,通常把处理数据的类文件称为模型(Model)类,模型类的作用是根据业务逻辑针对某张表进行数据处理,而且模型类名通常直接反映了要操作的数据表。
例如empModel.class.php文件就是针对emp表的数据处理,goodsModel.class.php文件就是针对goods表的数据处理。
而这些模型类文件有些功能是相同的,因此可以这些相同的部分,抽取到同一个类文件中,这个类文件就称为基础模型类。
下面就来创建模型类与基础模型类。
✧案例讲解
Ø案例分析
•创建library目录,将数据库操作类放入该目录中。
•创建init.php文件,实现自动加载和实例化模型类。
•在library目录下创建Model.class.php文件,获取数据库连接。
•设置tableName属性,用于保存获取的数据表名。
•编写获取查询字段的方法,用来保存指定字段以便查询。
•编写解析查询字段的方法,用来组合SELECT语句的查询字段。
•编写查询方法,根据字段和表名生成相关SQL语句并执行。
•设置data属性,用来保存要添加的数据信息。
•编写解析数据的方法,用来组合INSERT语句的字段和数据部分。
•编写添加数据的方法,根据字段、数据和表名生成相关SQL语句并执行。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“继承”、“多态”等。
Ø讲解“继承”
(1)、讲解继承的含义。
(2)、讲解如何通过使用extends关键字实现继承。
(3)、学生提问,老师对疑难问题进行解答。
Ø讲解“多态”
(1)、讲解多态的含义。
(2)、讲解多态实现的方法“重写”。
(3)、学生提问,老师对疑难问题进行解答。
Ø讲解“final关键字”
(1)、讲解final关键字的作用。
(2)、讲解final关键字的使用方法。
(3)、学生提问,老师对疑难问题进行解答。
Ø讲解“魔术方法”
(1)、介绍PHP常用的魔术方法。
(2)、介绍PHP魔术方法的特点。
(3)、详细讲解魔术方法__get()。
(4)、详细讲解魔术方法__set()。
(5)、学生提问,老师对疑难问题进行解答。
说明:
在操作演示的过程中,鼓励学生自行尝试。
小组之间可以协作讨论,教师对疑难问题进行解答。
✧阶段小结
Ø小结
重点:
继承、多态、final关键字、魔术方法。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“继承”、“多态”、“final关键字”和魔术方法
学完知识点后,让学生练习继承、多态、final关键字、魔术方法。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
本课时内容学习
【案例34】抽象类与接口
✧案例描述
在项目开发中,通常类的基础属性和方法都是由项目负责人进行编写的。
其他人在编写相关类的时候,都需要通过继承这些类来获取基础属性和方法。
虽然可以通过会议规定开发流程,但是如果能够从代码上来实现硬性控制更为方便。
在PHP中可以通过abstract关键字声明抽象类,来实现上述需求。
有时候我们希望一个类必须具有某些公共方法,此时就可以使用接口技术。
接下来就通过两个简单的例子演示抽象类和接口的使用。
✧案例讲解
Ø案例分析
•创建抽象类goods类,定义一个抽象方法和一个final方法。
•创建book类,继承goods类,实现goods类的抽象方法。
•创建phone类,继承goods类,实现goods类的抽象方法。
•定义接口,通过接口规定类必须要具有的公共方法。
•创建类文件,来实现接口。
Ø案例实现
教师带领学生分步骤地进行操作,并指出其中需要注意的事项。
说明:
在案例讲解的过程中,教师可适时停下来,让学生自行尝试。
小组之间可以协作讨论,教师巡视,对疑难问题进行解答。
✧知识点讲解
Ø总结知识点
教师和学生一起总结在案例中涉及到的知识点,主要包括“抽象类”、“接口”等。
Ø讲解“抽象类”
(1)、介绍抽象类的特性。
(2)、学生提问,老师对疑难问题进行解答。
Ø讲解“接口”
(1)、介绍定义接口的方法。
(2)、讲解接口的特性。
(3)、讲解如何实现接口。
(4)、讲解一个类实现多个接口的方法。
(5)、学生提问,老师对疑难问题进行解答。
说明:
在系统安装完成后,查看学生安装状况。
并让小组之间协作讨论,对小组的疑难问题进行解答。
✧阶段小结
Ø小结
重点:
抽象类,接口。
Ø答疑
教师询问学生对于知识点还有什么不理解的地方。
针对学生不理解的知识点给与解释。
✧巩固练习
Ø巩固“抽象类”和“接口”
学完知识点后,让学生练习抽象类和接口。
Ø通过“补充案例”加强学习
教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。
✧布置作业
Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。
Ø复习前面学过的知识点和案例,加强巩固。
第四课时、第五课时
(上机测试)
教师发放测试题目及案例素材,学生进行上机测试。
以此检查学生对相关知识点的掌握情况。
测试完成后将作品通过平台提交给老师。
上机测试主要针对本章中需要重点掌握的知识点,以及在代码中容易出
错的操作步骤。
(作品点评)
教师对学生提交的上机测试作品进行点评,指出代码中容易出现bug的地方,并给与解答。
✧布置作业
Ø完成课后“动手实践”,并扫描二维码查看答案。
预习7.1节【案例35】PDO的基本使用
教
学
后
记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 教学 设计