一、PHP面向对象编程基础实践
<?php/** 通过对象的编程方式,可将实现生活中的一切事物以对象的形式表现出来。便于理解、维护、扩展等;* 本示例:定义一个“人”类* $name : 对象中的成员属性,在此类中表示人的姓名* say() : 对象中的成员方法,在此类中表示人说话的方法* $this : PHP中的伪变量,表示自身的类* __construct() : php中的魔术方法,构造函数,在实例化类时自动执行* __destruct() : php中的魔术方法,析构函数,当类调用完成后自动执行*/class Human{ public $name; public $sex; public $age; public function __construct($name,$sex,$age) { $this->name = $name; $this->sex = $sex; $this->age = $age; } public function say() { echo '大家好,我的名字叫'.$this->name.',今年'.$this->age.'岁,我的性别是'.$this->sex; } public function __destruct() { $this->name = null; $this->sex = null; $this->age = null; }}//实例化“人”类$male = new Human("张三","男","20");//调用“人”类说话的方法$male->say();//输出结果:大家好,我的名字叫张三,今年20岁,我的性别是男?>
二、PHP面向对象高级编程实践
知识点:类的继承、方法重写、访问控制、static关键字、final关键字、数据访问、接口、多态、抽象类
2.1、类的继承:extends 关键字
例如:一员运行员、一位主持人,他们有人类共同的行为方法,但他们都有自己不同的特长专业。因此在编程时需要给他们创建一个父类并继承;
<?php/** 创建一个“人”类做为父类,继承的子类都拥有其父类的成员属性、方法*/class Human{ public $name; public function say() { echo "父类说话的方法,姓名:".$this->name."/n"; } public function eat() { echo "父类吃饭的方法/n"; }}/** 创建一个“运动员”类,继承“人”类* extends : 关键字,继承某个类*/class Sport extends Human{ public $type; public function __construct($name,$type) { $this->name = $name; //给父类 $name 属性赋值 $this->type = $type; } public function run() { $this->say(); //调用父类“说话”的方法 echo "我在正跑步,我是一员".$this->type."运动员...../n"; }}/** 创建一个“主持人”类,继承“人”类* extends : 关键字,继承某个类*/class Host extends Human{ public $television; public function __construct($name,$television) { $this->name = $name; $this->television= $television; } public function perform() { $this->eat(); //调用父类“吃饭”的方法 echo "我在正表演一个节目,我是".$this->television."电视台的一名主持人...../n"; }}//实例化“运动员”类$nba = new Sport("乔丹","篮球");$nba->run();//实例化“主持人”类$tv = new Host("张三","北京卫视");$tv->perform();//输出结果://父类说话的方法,姓名:乔丹 我在正跑步,我是一员篮球运动员..... //父类吃饭的方法 我在正表演一个节目,我是北京卫视电视台的一名主持人.....?>
2.2、方法重写:子类重写父类的方法
<?phpclass Human{ public function say() { echo "父类说话的方法"; }}class Sport extends Human{ //重写父类“说话”的方法 public function say() { echo "子类说话的方法"; }}$nba = new Sport();$nba->say();//输出结果:子类说话的方法?>
2.3、访问控制:public 、 protected 、private 关键字
public:定义公共的成员属性或方法,任何地方都可使用
protected : 定义受保护的成员属性或方法,只允许类本身或子类使用
private : 定义私有的成员属性或方法,只允许类的本身使用
<?phpclass Human{ public $name; protected $sex; private $age; }//实例化对象,给公共属性赋值可正常输出结果,外部不能给protected、private受保护的成员属性赋值或使用$worker = new Human();$worker->name = "张三";echo $worker->name;?>
2.4、static(静态)关键字
1)、静态属性用于保存类的公有数据;
2)、静态方法里面只能访问静态属性或方法,不能使用 $this 伪变量;
3)、静态成员不需要通过 new 关键字来实例化对象就可访问使用;
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答