首页 > 编程 > PHP > 正文

浅谈PHP面向对象编程

2020-03-22 19:01:01
字体:
来源:转载
供稿:网友
本篇文章给大家分享的内容是关于浅谈PHPhtml' target='_blank'>面向对象编程 ,有着一定的参考价值,有需要的朋友可以参考一下

一、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 关键字来实例化对象就可访问使用;

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表