《PHP动态网站设计(专)》第5章 面向对象编程学习指导文件.pdf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP动态网站设计专 PHP动态网站设计专第5章 面向对象编程学习指导文件 PHP 动态 网站 设计 面向 对象 编程 学习 指导 文件
- 资源描述:
-
1、 第五章(第五章(项目五项目五)面面向向对象编程对象编程 学习指导学习指导 一、认识面向对象编程一、认识面向对象编程 面向对象程序设计是 20 世纪 80 年代发展起来的一种程序设计方法,它通过对象模拟现实世界,利用抽象的方法来设计软件。面向对象程序设计的 3 个主要特征为封装、继承和多态。封装:指将数据和处理数据的方法包含在一起,成为一个类,类实例化成为对象。每一个对象都是该类的一个独立实体。对用户而言,类的内部是隐藏的,只能通过公开的数据或者方法来操作对象。继承:指一个类传承了另一个类的全部特征,并具有自己的特征。通过继承得到的新的类可称为派生类或者子类,被继承者称为基类或者父类。多态:是
2、指对象的同一个动作在不同情况下可能产生不同的结果,PHP 可通过方法重载来实现多态。这些概念听起来有些不好理解,下面我们通过一些实例来慢慢消化。在 PHP 中,对象的数据和方法对应类中的数据成员(也称属性成员)和方法成员。数据成员是变量,方法成员是函数。类的基本结构是这样的:class 是定义类的关键字,后面跟上类的名称,类的名称要符合标识符的命名规则。花括号内是类的属性和方法定义。属性列表为多个属性的声明,方法列表为多个方法的声明。通常,属性声明放在方法声明之前。从语法角度来看,属性声明和方法声明的先后顺序没有关系。其实类可以没有任何成员,也可只有属性成员或方法成员。二、定义和使用类二、定义
3、和使用类 1.简单类的定义和使用 在使用类时应明确如何定义类、属性声明、方法声明、创建对象、使用属性和使用方法等操作,再根据该操作对类进一步熟悉。例如定义和使用简单类的代码如下:这段代码定义了 person 类,可发现它有一个私有属性$name、一个构造函数_construct()和一个公共方法 getName()。public 和 private 等关键字将在后面的内容中介绍。关于类的定义和使用,涉及到的关键知识点主要有四个,如图所示。(1)构造函数与构造函数与 new 关键字关键字 PHP 中的构造函数名称统一为_construct(),不同的类的构造函数的区别只在于函数参数和函数体中的内
4、容不同。通常构造函数的参数名称与类中的属性变量名称相同,方便阅读。在类的定义之外,使用 new 关键字创建类的对象,此时类的构造函数自动被调用,完成对象初始化操作。例如上面语句“$a=new person(“Mike”)”中,参数“Mike”作为构造函数$name 的值被赋值给对象属性$name,生成对象变量$a。(2)$this 关键字关键字$this 关键字代表当前对象,注意不是代表类。在类的内部,并不能直接使用属性名来访问属性,而应该用“$this-属性名”格式来访问属性,注意属性名前面没有$符号。(3)对象变量对象变量 对象变量指保存类的实例对象的变量,通过对象变量访问对象的属性和方法
5、。New 关键字创建的对象通常保存在对象中,便于使用。将一个对象赋值给变量实质是建立变量与对象的引用关系。再将对象变量赋给另一个变量,则多了一个到对象的引用。(4)访问对象的方法和属性)访问对象的方法和属性 对象的方法和属性用对象名加“-”进行访问,如$this-name 和$a-getName()2析构函数析构函数 析构函数与构造函数的作用相反。当对象的所有引用被删除、对象被显式销毁、执行exit()结束脚本或者脚本执行结束时,析构函数会被调用。通常在析构函数中释放对象使用的资源或填写对象注销日志。将对象变量赋值为 NULL,或用 unset()函数删除变量,均可删除变量到对象的引用。一般情
6、况下,用户不需要定义析构函数,PHP“垃圾回收”机制可以自动回收没有使用的对象占用的内存。要注意的是,类的定义中可以没有构造函数和析构函数,如果这样,PHP 会自动生成一个默认的构造函数和析构函数。3public、protected 和和 private public(公有)、protected(受保护)和 private(私有)关键字用于设置类成员的可访问性(也称可见性)。类的属性必须使用 public、protected 或 private 进行声明,在 PHP 3 和 PHP 4 中使用 var声明属性。PHP 5 仍保留了 var,var 声明的属性都是公有属性。类的方法在未声明可访问
7、性时,默认为公有。下面分别详细说明。(1)public:公有成员,在类的内部和外部均可访问。外部访问格式为“$变量名-成员名”,内部访问格式为“$this-成员名”。公有成员可被继承,访问规则也适用。(2)protected:保护成员,只能在类的内部通过“$this-成员名”访问。保护成员可被继承。(3)private:私有成员,与保护成员类似,私有成员也可以被继承,但对子类而言,父类的私有成员是不可见的,只能通过父类的方法进行访问。例如下面这段类的定义代码声明了三种类型的属性和三种类型的方法。class test public&var1;/声明公有属性 var1 protected&var2
展开阅读全文