下载此文档

PHP基础教程-零基础学习PHP-面向对象高级.ppt


文档分类:IT计算机 | 页数:约26页 举报非法文档有奖
1/26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/26 下载此文档
文档列表 文档介绍
PHP面向对象高级
网址:
电话:400 700 1307
OOP的3个重要特性
封装的类
类层次结构,继承
多态性
封装性就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。
,形成一个不可分割的独立单位(即对象)。
,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。
封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。
封装的类
类的封装
将类的成员变量声明为private,再通过public 的方法来对这个变量进行访问。即可实现良好的封装性。
对于一个变量的操作,一般都有读取和赋值操作,getXxx(),setXxx();
类的封装性带来的优点
隐藏类的实现细节
让使用者只能通过事先定义好的方法来访问数据,可以方便的加入逻辑控制,进行数据检查,限制对属性的不合理操作。
便于修改增强代码的可维护性
__get()和__set()
一般来说,把类的属性定义为private,这更符合现实的逻辑。但是, 对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数__get()和__set()来获取和赋值其属性。
//__get()
function __get($property_name){
if(isset($this->$property_name)) {
return($this->$property_name);
}
else {
return(NULL);
}
}
//__set()
function __set($property_name, $value) {
$this->$property_name = $value;
}
继承性:
B类的对象拥有A类的全部属性与行为,称作B对A类的继承。例如,轮船客轮;人大人。
假如一个类只继承了另外一个类,这称为单继承。例如:狗继承动物;另外假如一个类从多个类中继承了属性与服务,这称为多继承。例如,客轮继承轮船和客运工具。
通常我们称被继承类为父类(superclass,超类),继承类为子类(subclass)。在PHP中只有单继承,但一个类可以被多个类继承。
继承
如果类是另一个类的子类,可以用关键词" extends "来指明其继承关系。如下代码创建了一个名为B的类,它继承了在它前面定义的类A。
Class A class B extends A
{ {
public $num1; public $num2;
function fun1(){ function fun2(){
} }
} }
如下所示的所有对类B对象的操作和属性的访问都是有效的:
$b=new B();
$b->$num1=10; $b->$num2=20;
$b->fun1( ); $b->fun2( );
类的继承
class Person
{
public $name;
public $age;
function getInfo(){...}
}
class Student
{
public $name;
public $age;
public $school;
function getInfo(){...}
function study(){...}
}
class Person
{
public $name;
public $age;
function getInfo(){...}
}
class Student extends Person
{
public $school;
function study(){...}
}
通过继承可以简化类的定义。
类的继承
PHP只支持单继承,不允许多重继承。一个子类只能有一个父类,不允许一个类直接继承多个类,但一个类可以被多个类继承。
可以有多层继承,即一个类可以继承某一个类的子类,如类B 继承了类A,类C又继承了类B,那么类C也间接继承了类A,
class A
{}
class B extends A
{}
class C extends B
{}

PHP基础教程-零基础学习PHP-面向对象高级 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数26
  • 收藏数0 收藏
  • 顶次数0
  • 上传人799474576
  • 文件大小0 KB
  • 时间2013-10-23
最近更新