- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 PHP5的面向对象程序设计 OOP达到了软件工程的三个目标:重用性、灵活性和扩展性,它的基本原则是将计算机程序的功能由单个能够起子程序作用的单元或对象通过组合来实现。 面向对象一直是软件开发领域内比较热门的话题 首先,面向对象符合人类讨论事物时探究“是什么,做什么,怎么做”的一般规律; 其次,采用面向对象方法可以使系统各部分各司其职、各尽所能,为编程人员敞开了一扇大门,使编程代码更加简洁、更易于维护,并且具有更强的可重用性。 而新兴的编程语言,如Java,就是以类、对象的概念为基础理念开发出来的,是程序开发史上的重大变革,不懂得类、对象,就不能使用Java。 PHP是一个混合型语言,你可以使用OOP,也可以使用传统的过程化编程。 本章将循序渐进地介绍什么是类,什么是对象,以及对类和对象的使用。学会了类和对象,程序员就能站在一个更高的层次上考虑、分析和解决问题。 8.1 面向对象的概念 类、对象都是比较抽象的概念,要想掌握它们,开始时是比较困难的,一旦掌握后,用类的思维来思考解决问题的方案将会非常自然,就与现实生活中解决问题的过程差不多。 8.1.1 什么是类 通常给出的“类(Class)”的定义是:变量和作用于这些变量的函数的集合。 定义了各种属性和各种方法的“人”就是一个“类”。 也可以这么说,类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述。在面向对象的编程语言中,类是一个独立的程序单位,它有一个类名,并拥有属性说明和方法说明两个主要部分。 8.1.2 什么是对象 当给一个类的属性赋予具体的值时,就生成了基于这个类的一个实例,这个实例就叫做“对象(Object)”。 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 对象是类的实例,所以,类中定义的属性和方法均可被对象沿用。 8.1.3 类和对象的关系 现在我们已经对类、属性、方法和对象有了初步的了解,类的属性通过变量赋值来实现,而类的方法则通过各种功能的自定义函数来实现。 变量,指的就是类的各种属性;函数,指的就是类的各种方法,它们合起来就构成了“类”。 类描述了每个对象应包括的数据和行为特征,是所有实例对象的统称和概括,对象就是类的一个具体化的实例。 如果说传统的面向过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。可以用公式做出如下表示。 过程式编程语言为:程序=算法+数据 面向对象编程语言为:程序=对象+消息 8.2 PHP5中的类和对象 在上节中,我们知道了什么是类,类的属性、方法,什么是对象,以及类与对象的关系,本节中,将学习在PHP5中如何使用它们。 8.2.1 类的创建 在PHP5中,类的创建通过关键字class来定义。语法如下: ?php class classname { 变量声明; //属性定义 函数声明; //方法定义 } ? 8.2.2 定义类的属性 所有的属性和方法定义都被封闭在class所引导的大括号中,在PHP4中,属性变量通过var关键字来定义,如: ?php class classname { var $name; var $width; } ? 为了保持兼容,使用var关键字定义属性变量的程序仍可在PHP5中运行,这些变量全部被当作是public类型。 8.2.3 定义类的方法 类的方法都是以函数的形式存在的,因此和普通函数一样,通过function关键字来定义: function sum($val1, $val2) { return $val1 + $val2; } 既然方法都是函数,那么定义类的方法时,也可以定义参数,如果声明了这个方法有参数,则在调用此方法时必须传递参数给它,如果没有传递参数,或者参数数量不足,都会导致程序出错(方法定义时设定了参数默认值的除外)。另一方面,如果传递的参数数量多于方法所定义的参数数量,PHP就会忽略多余的参数,不予理会。 8.2.4 对象的创建 定义好一个类之后,就可以使用关键字new来创建一个基于该类的对象实例了,new需要类的名称,并返回一个类的实例,该实例也是一个变量,需要在对象名称前加$。例如: ?php $objectname = new classname; ? 一个类可以实例化出多个对象,每个对象都是独立的,每个对象之间是没有联系的,只能说明它们都是这个类的实例对象,每个对象都有自己单独的属性值。 8.2.5 $this关键字 在类内部调用该类所定义的属性和其他方法时,必须使用$this-取值,而方法内的定义的局部变量,作用范围仅限于该方法内部,而不属于对象,因此是不能用$this关键字取值的。 当用$this-调用一个未定义的属性时,PHP
原创力文档


文档评论(0)