首页 > 代码库 > php面向对象程序设计
php面向对象程序设计
-
面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构,OOP的一条基本原则是:计算机程序是有单个能够起到子程序作用的单元或对象组合而成的,为了实现郑铁运算,每个对象读能够接收信息、处理数据和向其他对象发送信息。OOP达到了软件工程的三个目标:重用性、灵活性和扩展性,使其变成的代码更加简洁、易于维护,并且具有更强的可重用性。面向对象移至是软件开发领域比较热门的话题,首先,面向对象符合人类看待事物的一般规律。其次,采用面向对象的设计方式可以使系统各部分各司其职、各尽所能。但PHP并不是一个真正的面向对象的语言,而是一个混合型语言,可以使用面向对象去设计程序,也可以使用传统的过程化进行编程。然而,对于大型项目,你可能需要在PHP中使用纯的面向对象思想去设计。
面向对象的程序设计分两个方向:
面向对象技术的语法
面向对象的编程思想
类和对象之间的关系
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对象的抽象就是类。类描述了一组有相同特性和相同行为的对象。在开发时,要先抽象类再用该类去创建对象,而在我们的程序中直接使用的是对象而不是类。
什么是类
在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括成员属性和服务的方法两个主要部分。
什么是对象
在客观世界里,所有的事物都是由对象和对象之间的联系组成的。对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象由一组属性和有权对这些属性进行操作的一组服务的封装体。
-
具体理解什么是类什么是对象
一个类最为突出的特性,或区别于其他类是你能给它提出什么样的请求,它能为你完成那些操作。例如,你去中关村电子城想买几台组装的PC,你首先要做的事是什么?是装机的工程师和你坐在一起,按你的需求和你一起完成一个装机的配置单。可以把这个配置单看做是一个类,也可以说是自定义的一个类型,它记录了你要买的PC的类型,如果按这个配置单组装10台PC出来,这10台机子就可以说是同一个类型的,也可以说是一类的。
那么什么是对象呢?类的实例化结果就是对象,按PC的配置单组装出来的PC就是对象,是我们可以操作的实体。组装10台PC,就创建了10个对象,每台PC都是独立的,只能说明他们是按同一类型配置的,对其中一个PC做任何动作都不会影响其他9台机器。但是如果对类进行修改,也就是在这个PC的配置单上加一个或少一个配件,那么组装出来的10个机子都被改变。
类其实就像我们现实世界将食物分类一样,由车类,所有的车都归属于这个类,例如,奔驰车、宝马车都属于车类中的一种;由人类,所有的人都归属于这个类,例如中国人、美国人、工人、学生等都属于人类中的一种;有球类,所有的球都归属这个类,例如篮球、足球、排球等。在程序设计中也需要将一些相关的变量定义和函数的声明归类,形成一个自定义的类型。通过这个类型可以创建多个实体,一个实体就是一个对象,每个对象都具有该类中定义的内容特性。
面向对象的程序设计
在早期的PHP4中,面向对象功能很不完善,所以程序设计人员几乎采用的都是过程化的模块编程,程序的基本单位就是有函数组成的。而PHP5版本的发布,标志着一个全新的PHP时代的到来,它的最大特点就是引入了面向对象的全部机制,并且保留了向下的兼容性。开发人员不必再编写缺乏功能性的类,并且能够以多种方式实现类的保护。程序设计人员在设计程序时,就可用以对象为程序的基本单位。
在面向对象的程序设计中,初学者比较难理解的并不是面向对象程序设计中用到的基本语法,而是如何使用面向对象的模式思想去设计程序。例如,一个项目要用到多少个类?定义什么样的类?每个类在什么时候创建对象?哪里能用到对象?对象和对象之间的关系,以及对象之间如何传递信息等。
假设有这样一个项目,某大学需要建立5个多媒体教室,每个教室可以供50名学生使用。如果把这个项目交给你来完成,你该怎么做?是不是首先需要5个房间,每个房间里面摆放50张计算机桌和50把椅子,然后需要购买50台计算机、1个白板和1个投影机等?这些是什么?能看到的这些实体就是对象,也可以说是这些多媒体教室的组成单位。多媒体教室需要的东西都知道了,怎么去准备呢?就要对所有需要的东西进行分类,可以分成房间类、桌子类、椅子类、计算机类、白板类和投影机类等。然后定义每个类别的详细信息,例如,房间类里面需要定义它的面积、桌子数量、就算几数量和椅子数量等,按这个房间类的设计就可以建立5个房间对象作为教室。桌子类需要定义它的长、宽、高以及颜色,那么通过桌子类声场的所有桌子就都是一样的类型。做一个计算机类,列出需要的计算机详细配置,这样购买的计算机就都属于这个类型了。以此类推,每个对象都可以这样准备,把这些创建完成的对象都放到各自的教室中,再由学生对象的使用就可以将多个对象关联到一起了。
-
3
开发一个面向对象的系统程序和创建一个多媒体教室类似,都是把每个独立的功能模块抽象成类并实例化成对象,再由多个对象组成这个系统。这些对象之间能够接收信息、处理数据和向其他对象发送信息等相互作用,就构成了面向对象的程序。
php面向对象程序设计