《PHP Web应用开发案例教程》630-9(阮云兰)教案 第14课 面向对象的程序开发_第1页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第14课 面向对象的程序开发_第2页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第14课 面向对象的程序开发_第3页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第14课 面向对象的程序开发_第4页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第14课 面向对象的程序开发_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE8PAGE8PAGE7PAGE7

课题面向对象的程序开发课时2课时(90min)教学目标知识技能目标:(1)了解面向对象的概念(2)了解类和对象的关系(3)掌握类中变量和方法的应用素质目标:(1)能够领会PHP面向对象的程序开发的理念,在生活中学以致用(2)培养精益求精、科学严谨、追求卓越的工匠精神(3)紧跟时代发展,了解前沿科技,树立科技报国的人生理想教学重难点教学重点:类和对象教学难点:类中变量和方法的应用教学方法案例分析法、问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:→→→传授新知(38min)第2节课:→传授新知(20min)→课堂实训(15min)→课堂小结(3min)→作业布置(2min)教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,预习本节课要学习的知识【学生】完成课前任务通过课前任务,使学生预习本节课要学习的知识,增加学生的学习兴趣考勤(2min)【教师】使用文旌课堂APP进行签到【学生】班干部报请假人员及原因培养学生的组织纪律性,掌握学生的出勤情况问题导入(5min)【教师】提出以下问题:面向对象编程的理念是从生活中抽象出来的,你能举出生活中类和对象的相关的例子吗?通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(38min)【教师】通过学生的回答引入要讲的知识,讲解面向对象的程序开发的相关知识8.1面向对象的基本概念✈【教师】安排学生扫码观看视频“面向对象的基本概念”,讲解知识✈【学生】扫码观看、理解、记忆此处的面向对象,准确地说应该叫作“面向对象编程”。面向对象编程(objectorientedprogramming,OOP)是一种计算机编程架构,它能使代码更加简洁,更易于维护,并且具有更强的可重用性。✈【教师】讲解“大国工匠”中的内容,增强学生的集体荣誉感,树立科技报国的理想汪成为,于1994年当选为首批中国工程院院士,曾任国家“863计划”专家委员会委员、信息领域首席科学家、智能计算机专家组组长、国家“973计划”专家委员会委员,曾获何梁何利基金“科学与技术进步奖”、中国计算机学会终身成就奖等荣誉。早在2004年,中国工程院第七次院士大会上,汪院士对21世纪初信息技术发展趋势做出预判,他提出,网络技术将发展为协同计算;多媒体技术将发展为虚拟现实;面向对象技术将发展为面向智能体技术;嵌入技术将发展为普适技术。在这些技术的支持下,21世纪初,有望实现一个智能化的人机和谐环境。10多年后,基于虚拟计算、异构网络、人工智能理念所研发的智能物流、智能管家、智能汽车等应用正逐步实现。8.1.1类和对象的关系算术运算符是最简单和最常用的运算符,用于进行四则运算,尤其是对数字的处理,几乎都要用到算术运算符。类(class)和对象(object)是面向对象编程的核心概念。类是对一类事物的描述,它定义了事物的抽象特点,类的定义包含了数据的形式及对数据的操作。对象是类的实例,是实际存在的该类事物的某个个体。在计算机中,可以将类理解为一个抽象模型,而对象是实实在在存储在内存区域中的一个实体。简单来说,类是用于生成对象的代码模块。同很多面向对象的语言一样,PHP也是通过关键字class加类名来定义类的,与一个类关联的代码必须用大括号括起来。其定义的格式如下:<?phpclassSimpleClass{//类体}?>类名可以是任意数字和字母的组合,但不能以数字开头。一般采用首字母大写,而后每个单词首字母大写的形式定义类名,以便于阅读。上面定义的SimpleClass是一个最简单的类,仅有一个框架,但这并不影响其存在。如果把类看作生成对象的模板,则对象就是根据该模板构造的数据。例如,可以把SimpleClass类作为生成SimpleClass对象的模型,其定义的格式如下:<?phpclassSimpleClass{//类体}$S=newSimpleClass();?>上述代码使用“new”关键字创建了一个SimpleClass的对象。8.1.2类中的变量类中的变量是指在class中声明的变量,称为成员变量(也称属性或字段),用于存放数据信息。成员变量与普通变量相似,其定义的格式如下:key$age="23";关键字key可以是public,protected,private,static和final中的任意一个。public(公有):表示变量在类的内部和外部都可以被读取和修改。protected(受保护):表示变量可以被其自身及其子类和父类读取和修改。private(私有):表示变量只能被其定义所在的类访问。这些关键字不仅可用于修饰变量,也可用于类和方法。static和final的应用将在8.3节详细介绍。要访问成员变量,可以使用“->”符号连接对象和变量名。在方法(函数)内部通过“$this->”访问同一对象的变量。✈【教师】通过多媒体展示例8-1的代码和运行结果,并进行讲解<?phpclassSimpleClass{public$nationality="China"; //定义公有变量$nationality public$age="23"; //定义公有变量$age}$S=newSimpleClass(); //创建对象echo"女孩的国籍是:".$S->nationality."<br>"; //输出对象$S的属性$nationalityecho"女孩的年龄是:".$S->age; //输出对象$S的属性$age?>例8-1中为类定义了两个变量,并设置了初始值,也可以在变量定义时不设置初始值。PHP并没有强制变量必须在类中声明,可以随时动态增加变量到对象。如以下代码:$S->age=23;但是这种用法并不好,一般不建议使用。private修饰的变量不能在当前对象之外被直接访问,一般用于隐藏数据,以保证某些数据的安全。在PHP中,指向对象的变量是引用变量,该变量里存储的是所指向对象的内存地址。引用变量传值时,传递的是对象的地址,而非复制该对象。$S=newSimpleClass();$S1=$S;此处是引用传递,$S1与$S指-向同一个内存地址。✈【教师】通过多媒体展示例8-2的代码和运行结果,并进行讲解引用传递的应用。实例代码如下:<?phpclassSimpleClass{public$nationality="China"; //定义共有变量$nationality}$S=newSimpleClass(); //创建对象$S1=$S;$S1->nationality="England"; //改变$S1的nationality属性值echo"对象S1的nationality属性值是:".$S1->nationality."<br>"; //输出对象$S1的属性$nationality值echo"对象S的nationality属性值是:".$S->nationality;//$S的属性$nationality值?>由图8-2可以看出,两个对象的nationality属性值都为“England”,说明$S1和$S指向的是同一个对象。8.1.3类中的方法类中的方法(又叫成员方法)是指在类中声明的特殊函数。它与普通函数的区别在于,普通函数实现的是某个独立的功能;而成员方法是实现类的一个行为,是类的一部分。其定义的格式如下:publicfunctionsetAge($age){$this->age=$age;//方法体}✈【教师】通过多媒体展示例8-3的代码和运行结果,并进行讲解成员方法的定义与使用。实例代码如下:<?php $a=-300; //声明变量$a $b=120; //声明变量$b<?phpclassSimpleClass{/*成员变量*/public$age=23;/*成员方法*/publicfunctionsetAge($age){$this->age=$age;}publicfunctiongetAge(){return$this->age;}}$a=newSimpleClass(); //创建对象$a->setAge("26"); //改变$a的age值echo$a->getAge(); //输出改变后的值?>例8-3中定义成员方法时定义了参数$age,使用该方法时,可以向方法内部传递参数变量。方法内接收到的变量是局部变量,仅在方法内部有效。可以通过向属性传递变量值的方式,让该变量应用于整个对象。同属性的访问一样,可以使用“->”连接对象和方法名来调用方法,所不同的是,调用方法时必须带有圆括号(参数可选)。在PHP中,如果声明类的方法时带有参数,而调用该方法时没有传递参数,或者参数数量不够,系统会报错。如果参数数量超过方法本身定义参数的数量,系统会忽略后面多出来的参数,不会报错。PHP允许在定义函数时为参数设定默认值。在调用该方法时若没有传递参数,系统会使用默认值填充该参数变量。同时还允许向一个方法内部传递另一个对象的引用。✈【教师】通过多媒体展示例8-4的代码和运行结果,并进行讲解引用对象。实例代码如下:<?phpclassm{public$age=23;}classn{publicfunctiongetAge($a){return$a->age;}}$a=newm();$P=newn();echo$P->getAge($a);?>【学生】聆听、思考、记录通过教师的讲解和演示,使学生了解面向对象的程序开发的相关知识第二节课问题导入(5min)【教师】提出以下问题:每一个对象都是从类中实例化出来的,但这些对象都有自己不同的属性,那么怎样在实例化对象的时候给对象初始化一些变量呢?对于构造出来的对象在使用完成之后又如何删除呢?【学生】思考、举手回答通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(20min)【教师】通过学生的回答引入新知,介绍构造和析构方法8.1.4构造方法当将一个类实例化为一个对象时,可能同时需要初始化一些变量。下面定义了一个类,代码如下:classSimpleClass{public$name="糖糖"; //定义公有变量$namepublic$height="172"; //定义公有变量$heightpublic$nationality="China"; //定义公有变量$nationalitypublic$sex="女"; //定义公有变量$sexpublic$age="23"; //定义公有变量$age}下面将类SimpleClass声明为一个对象,并为该类的一些成员变量赋初值。代码如下:$girl=newSimpleClass('糖糖','172','China','女','23'); //实例化类,并传递参数$girl->name="糖糖"; //为变量$name赋值$girl->height="172"; //为变量$height赋值$girl->nationality="China"; //为变量$nationality赋值$girl->sex="女"; //为变量$sex赋值$girl->age="23"; //为变量$age赋值由以上代码可以看出,如果赋值较多,程序写起来会特别麻烦。为此,PHP引入了构造方法。构造方法是一种特殊的方法,主要用于在创建对象时初始化对象,即为对象成员变量赋初始值,其总与new运算符一起在创建对象的语句中使用。定义构造方法的格式如下:void__construct([mixed$args[,$...]])上式中的“__”是两条下画线“_”。✈【教师】通过多媒体展示例8-5的代码和运行结果,并进行讲解构造方法。下面通过具体实例来查看构造方法的应用,体会它与普通成员方法的不同之处。实例代码如下:<?phpclassSimpleClass{ publicfunction__construct($name,$height,$nationality,$sex,$age){//定义构造方法 $this->name=$name; //为变量$name赋值 $this->height=$height; //为变量$height赋值 $this->nationality=$nationality; //为变量$nationality赋值 $this->sex=$sex; //为变量$sex赋值 $this->age=$age; //为变量$age赋值 } publicfunctionmodelsize(){ //声明成员方法 if($this->height<180and$this->age<20){ return$this->name.",符合模特招聘的要求!"; //方法实现的功能 }else{ return$this->name.",不符合模特招聘的要求!"; //方法实现的功能 } }}$girl=newSimpleClass('糖糖','172','China','女','16'); //实例化类,并传递参数echo$girl->modelsize(); //执行类中的方法?>由例8-5可以看出,使用构造方法,在将方法实例化为对象时,只需一条语句即可完成对成员变量的赋值操作。8.1.5析构方法析构方法(析构函数)与构造方法正好相反,当对象结束其生命周期时(如对象所在函数已调用完毕),系统自动执行析构函数以释放内存。定义析构函数的格式如下:void__destruct(void)-✈【教师】通过多媒体展示例8-6的代码和运行结果,并进行讲解引用对象。实例代码如下:<?phpclassDestructable{function__destruct(){echo"执行析构函数";}}$obj=newDestructable();f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论