php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序

上传人:E**** 文档编号:102564194 上传时间:2019-10-03 格式:PPTX 页数:64 大小:545.27KB
返回 下载 相关 举报
php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序_第1页
第1页 / 共64页
php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序_第2页
第2页 / 共64页
php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序_第3页
第3页 / 共64页
php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序_第4页
第4页 / 共64页
php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序》由会员分享,可在线阅读,更多相关《php+mysql程序设计及项目开发教学课件作者郑广成单元7设计面向对象程序(64页珍藏版)》请在金锄头文库上搜索。

1、PHP+MySql程序设计及项目开发,教学内容:单元7 设计面向对象程序,授课人:郑广成 Tel:18051236362 Email:117868704,单元概要,单 元 要 点 对象和类 创建类和对象 构造函数和析构函数 类的继承 方法的覆盖 抽象类和抽象方法 接口 类的多态 技 能 目 标 会定义类和实例化对象 会使用对象 会使用抽象方法 会用继承方法 会使用接口、多态 项 目 载 体 工作场景项目:图形面积&周长计算 并行训练项目:简单计算器,7.1项目场景导入,项目名称:图形面积&周长计算 项目场景:使用面向对象的方法实现图形面积的计算,可以实现矩形、三角形、圆形的面积周长计算。,7.

2、2项目问题引导,(1)如何定义图形类? (2)如何使用多态和方法? (3)如何继承? (4)如何实例化矩形、圆形、三角形对象? (5)如何实现具体操作和类方法?,7.3技术与知识准备,7.3.1PHP面向对象概述 “面向对象”(0bject Oriented,OO)是软件开发过程中极具影响性的突破,越来越多程序设计语言强调其面向对象的特性,PHP也不例外。自PHP5开始,PHP就提供了面向对象的支持。 面向对象的思想可以使程序更加符合人类看待事物的规律。面向对象编程的优点是对象可以在不同的应用程序中被重复使用,实现了软件工程的重用性、灵活性和可扩展性。 7.3.2创建类与对象 7.3.2.1类

3、和对象的关系 简单地说,类是用于生成对象的代码模板,比如教师类,它包含教师的姓名、年龄、学历、职称等属性信息,还包括教师进行自我介绍以及如何授课等行为。PHP中使用关键字class和一个类名来声明一个类。类名可以是任意数字和字母的组合,但是不能以数字开头,一般使用首字符大写,而后每个单词首字符大写的方式,这样会方便阅读。,7.3技术与知识准备, 权限修饰符是可选项,可以使用public、protected、private或省略这3者。 class是创建类的关键字。 类名是所要创建类的名称,必须写在class关键字之后,在类的名称后面必须跟上一对大括号。 下面我们定义一个教师类。 ,7.3技术与

4、知识准备,这样就创建了一个合法的Teacher类,虽然没有任何用处,但是已经完成了一些非常重要的事情。然后就可以把教师类当作生成各位教师对象的模板,创建各位教师。现实情况有很多教师,不同的教师对象是类的不同“示例”,它是由类定义的数据类型。 可以使用Teacher类生成Teacher对象: 这样就通过使用new这个关键字创建了一个Teacher的对象。,7.3技术与知识准备,7.3.2.2类的属性 类的属性指在class中声明的变量,也被称为成员变量,例如前面提到的教师有姓名、年龄、学历、职称等信息,都可以定义为Teacher的属性。在PHP 5中,类中的属性与普通变量很相似,可以使用publ

5、ic、private、protected、var之一进行修饰,或者不使用任何修饰符,他们决定变量的访问权限。以上关键字是PHP 5中引入的,在PHP 4下运行将无法正常工作。 public(公开):可以自由地在类的内部和外部读取、修改,也就是由public所定义的类成员可以在任何地方被访问。 private(私有):只能在这个当前类访问和修改,不能在类外访问。 protected(受保护):能够在本类和该类的子类中读取和修改。 var以这个关键字定义的成员能够被任何程序代码访问(public的别名)。,7.3技术与知识准备,在类中定义的变量称为类的成员变量,在方法中定义的变量称为局部变量。 不

6、同位置定义的变量有什么不同呢?这里分三个方面进行区别: 成员变量: 成员变量定义在类中,在整个类中都可以被访问。 成员变量随着对象的建立而建立,随着对象的消失而消失。 成员变量有默认初始化值。 局部变量: 局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 局部变量作用范围结束,变量空间会自动释放。 局部变量没有默认初始化值 。 在使用变量时需要遵循的原则为:就近原则,即首先在局部范围找,有就使用;接着在成员位置找。 属性的使用:通过使用“-”符号连接对象和属性名来访问属性变量。在方法内部通过“$this-”访问同一对象的属性。当然,我们可以在属性定义时设置初始值,也可以不

7、设置初始值。,7.3技术与知识准备,例如前面提到的教师有姓名、年龄、学历、职称等属性,都可以定义为Teacher的成员变量如下。 【示例1】定义类 并且,可以根据需要对成员变量进行初始化,将成员属性初始化为一个常量的,这就如同为对象的属性规定了一个默认值一样。下面就来重新定义“Teacher”类,如下所示。,7.3技术与知识准备,【示例2】类变量初始化 7.3.2.3函数的参数 类的方法也叫成员方法,是在类中声明的方法(函数)。属性可以让对象存储数据,类中的方法则可以让对象有活动,有功能。例如前面提到的教师类有自我介绍以及授课等行为活动,就可以在Teacher类中声明两个方法,一个可以进行自我

8、介绍,一个授课。,7.3技术与知识准备,【示例3】类方法定义 “; echo “归纳总结“; function introduce() echo “大家好,我是“.$this-school.“的“.$this-name.“; echo “今年“.$this-age.“岁,目前职称是“.$this-title.“; ?,7.3技术与知识准备,【示例4】设置和获取变量值 age=$age; public function getAge($age) return $age; public function giveLession() echo “讲解知识点“; echo “归纳总结“; functi

9、on introduce() echo “大家好,我是“.$this-school.“的“.$this-name.“; echo “今年“.$this-age.“岁,目前职称是“.$this-title.“; ?,7.3技术与知识准备,7.3.2.4静态成员和静态方法 前面我们讲述类中的定义的变量叫成员变量,类中声明的的方法叫成员方法,成员变量和成员方法都属于对象,但是如果类中成员变量和成员方法被关键字static修饰,则变为静态成员和静态方法,静态成员和静态方法属于类。 【示例5】静态成员和静态方法 name; echo Ren:run(); ?,7.3技术与知识准备,【示例6】静态方法访问

10、静态成员 “; echo Ren:run().“; $r=new Ren (); $r-say().“; ?,7.3技术与知识准备,7.3.3构造函数与析构函数 面向对象程序的最终操作者是对象,有了类之后,我们就可以用这个类去创建对象了,创建对象就是示例化一个类,对象是类的示例化的产物。所以学习面向对象只停留在类的声明上是不够的,必须学会将类示例化成对象。下面进行讲解。 7.3.3.1构造函数 构造函数也就是构造方法是示例化对象的时候使用的。构造方法没有返回值。构造方法与其他函数一样,可以传递参数,也可以设定参数默认值。构造函数写法特殊,就是方法名与类名一致,执行时间特殊,构造对象的时候就执行

11、了构造方法。 在PHP5具体语法格式如下: Void _construct(mixed $args , $ ) 在Teacher类中声明一个构造方法如下,它带有4个参数。 function _construct($name,$age,$title,$school) $this-name=$name; $this-age=$age; $this-title=$title; $this-school=$school; ,7.3技术与知识准备,【示例7】构造函数类的使用 name=$name; $this-age=$age; $this-title=$title; $this-school=$sch

12、ool; public function setAge($age) $this-age=$age; public function getAge( ) return $this-age; ,7.3技术与知识准备,public function giveLession() echo “讲解知识点“; echo “归纳总结“; function introduce() echo “大家好,我是“.$this-school.“的“.$this-name.“; echo “今年“.$this-age.“岁,目前职称是“.$this-title.“; $teacher1=new Teacher(张敏,4

13、0,副教授,南京大学); $teacher1-introduce(); $teacher1-giveLession(); ?,【示例8】无参构造方法 age=$age; public function getAge( ) return $this-age; public function giveLession() echo “讲解知识点“; echo “归纳总结“; ,7.3技术与知识准备,function introduce() echo “大家好,我是“.$this-school.“的“.$this-name.“; echo “今年“.$this-age.“岁,目前职称是“.$this-

14、title.“; $teacher1=new Teacher(); $teacher1-name=郑广成; $teacher1-school=苏州健雄学院; $teacher1-setAge(40); $teacher1-introduce(); $teacher1-giveLession(); ?,7.3.3.2封装 面向对象编程的三个重要特点是:继承、封装和多态,它们迎合了编程中注重代码重用性、灵活性和可扩展性的需要,奠定了面向对象在编程中的地位。 封装就是将属性私有化,然后提供公有的方法去访问私有属性,目的是为了使一个类更加安全,基本做法是:将成员变量(年龄)变成私有;在类里面做方法间接

15、访问成员变量;在访问里面加控制。像前面Teacher类中的private $age。下面我们将Teacher类中所有属性私有化,然后提供公有的方法,访问这些属性。,7.3技术与知识准备,【示例9】 name=$name; public function getName() return $this-$name; public function setAge($age) $this-age=$age;, public function getAge() return $this-$age; public function setTitle($title) $this-title=$title;

16、public function getTitle() return $this-Title; public function setSchool($school) $this-school=$school; public function getSchool() return $this-school; ,7.3技术与知识准备,public function giveLession() echo “讲解知识点“; echo “归纳总结“; function introduce() echo “大家好,我是“.$this-school.“的“.$this-name.“; echo “今年“.$this-age.“岁,目前职称是“.$this-title.“;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号