zff第13章PHP面向对象编程.ppt_第1页
zff第13章PHP面向对象编程.ppt_第2页
zff第13章PHP面向对象编程.ppt_第3页
zff第13章PHP面向对象编程.ppt_第4页
zff第13章PHP面向对象编程.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、第13章 PHP面向对象编程,烟台南山学院软件工程学院,第10章 PHP中的图像处理,2,本章主要内容,什么是面向对象编程 在PHP中创建和使用类 PHP中类相关的函数 PHP中使用类的实例,第10章 PHP中的图像处理,3,编程所使用的方法通常有两种: 面向过程的方法:如C,pascal等 面向对象的方法:如java、C+、C#等 PHP是一种混合语言,具有面向过程和面向对象的两种模式,用户可以根据自己的习惯选择某种模式。,第10章 PHP中的图像处理,4,第13章 PHP面向对象编程,一、面向对象基础 1、什么是类? 类是具有相同属性定义和行为的表现的事物的集合。 例如:人、动物、植物 类

2、不是指个体,而是一个概念,真正用到的是类的实例(对象),因此对人这个类来说,可以说人具有国籍(即人这个类具有国籍这一属性),但不能说人这个类的国藉是什么。 类有两种成员,即变量(属性)和作用于变量的函数(方法)。二者构成了类的基础。 2、使用类的好处 在大规模的编程中,往往某段程序可能会在多处使用到,如果将这些重用的代码,通过类进行封装,需要的时候只需通过类的实例来调用类中的成员或方法即可。具体来说有以下几个方面的优点:,第10章 PHP中的图像处理,5,第13章 PHP面向对象编程,易维护 质量高 效率高 易扩展 二、在PHP中创建和使用类 1、自建类-类的封装 (1)创建类 语法结构: c

3、lass 类名 成员变量; 成员方法; 参见教材P210例,第10章 PHP中的图像处理,6,第13章 PHP面向对象编程,(1)创建对象 创建类的目的是为了使用它,而使用的方式就是通过类的实例(对象)来进行。 语法: $objectname = new classname; 创建了对象之后,就可以调用类中的成员了(即变量和方法) 其语法格式为: $objectname-varname; $objectname-functionname; 例:P211-212类的成员的引用,第10章 PHP中的图像处理,7,第13章 PHP面向对象编程,2、为类添加成员变量和成员方法 在创建类的过程中,通常需

4、要添加变量和函数,以实现某方面的功能。 参见P213-214例子 3、类的继承 同其它面象对象语言一样,在PHP中通过类的继承可以使一个新的类具有和原来的类相同的属性和方法。 PHP中类的继承语法: Class Son_class extends class 注意:PHP中不支持类的多重继承;思考C+,C#,java是否能支持多重继承?如果不能,如何实现多重继承现象? 类的继承实例:参见教材P215,第10章 PHP中的图像处理,8,第13章 PHP面向对象编程,4、类的重载 一个子类的属性和方法,有时会同父类的属性和方法重名,这时就出现了类的重载。 类的重载实质就是类中的属性和方法的重载。表

5、现为子类中又重新定义了与父类中的属性和方法同名的变量和函数。 在执行子类的某个方法时,还将执行子类中同名的方法,不会影响到父类中相同的方法。 如果要在子类中访问父类的方法,必须通过关键字self和parent。 思考:在java和C#中如果实现这样的功能? 例:如何使用类的重载,如何在子类中对其父类的方法进行调 用?参见教材P216-217,第10章 PHP中的图像处理,9,第13章 PHP面向对象编程,4、类的引用 类的引用是指在一个类中使用了其他类的属性和方法(注意这两个类没有继承关系) 主要适用于两个有关联的类之间的情形。 参见教材P218实例 5、类的构造函数 构造函数可以理解为当创建

6、类的实例时,一定发生作用的函数,即当使用new创建对象时,构造函数将会自动被调用。 构造函数通常用于初始化成员变量。 思考1:一个类中可以有多个构造函数,但必须参数有区别。在创建对象时,调用哪一个构造函数,通过参数的类型、个数、顺序等来进行识别。 参见P219-220实例。,第10章 PHP中的图像处理,10,第13章 PHP面向对象编程,思考2:一个类中如果没有定义构造函数,创建对象是否就没有构造函数?如果调用了构造函数,那么此时构造函数的作用是什么? 三、PHP中与类、对象相关的函数 1、array get_declared_classes() 功能:返回由已定义类的名字所组成的数组。 P

7、HP中有预定义类,它们由系统自动生成,使用该函数时会有几个预定义类存在于返回的数组中。这些预定义类为: stdClass、_PHP_Incomplete_Class、Directory等。 例P225 注意:由于版本不同,返回的预定义类可能不相同。,第10章 PHP中的图像处理,11,第13章 PHP面向对象编程,2、array get_object_vars(object obj) 功能:返回由对象属性组成的关联数组 例P236程序 3、string get_class(object obj) 功能:返回对象的类名,如果object不是一个对象返回为false。 4、string get_p

8、arent_class(mixted obj) 功能:返回对象或类的父类名;如果obj是对象,则返回该对象实例obj所属类的父类名;如果obj是字符串,则返回以字符串为名的类的父类名。 5、bool is_subClass_of(object object,string class_name) 功能:如果对象object所属类是类class_name的子类,则返回为true,否则返回为false。主要用于判断某个对象是否属于某个类或者是其父类。参见P228程序示例,第10章 PHP中的图像处理,12,第13章 PHP面向对象编程,6、bool class_exists(string class_name,bool autoload) 功能:检查类是否已经定义,如果由字符串class_name所指的类已经定义,则返回为true,否则返回为false。 7、bool method_exists(object objec, string method_name) 功能:检查object类的method_name方法是否存在,如果存在返回为true,否则返回false。 参见P229-230程序示例。 8、array get_class_vars(string class_name) 功能:返回类的默认公有属性组成的数组。

温馨提示

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

评论

0/150

提交评论