面向对象PHP(一)

来源:互联网 发布:油页岩知乎 编辑:程序博客网 时间:2024/05/21 06:48
<?php/***   继承,访问控制,static(静态)关键字、重写、Final关键字、数据访问补充、接口、多态、抽象类*//***   1.静态属性用于保存类的公有数据*   2.静态方法里面只能访问静态属性*   3.静态成员不需要实例化对象就可以访问*   4.类的内部可以通过self或者static关键字访问自身静态变量*   5.可以通过parent关键字访问父类的静态成员*   6.可以通过类的名称在类的定义外部访问静态成员*/header("Content-Type: text/html; charset=utf-8");//去除中文乱码date_default_timezone_set("PRC");//设置中国时区    /**    * Human类定义    */    class Human     {        public $name;        protected $height;//本身和子类可访问        public $weight;        public static $staticValue="我是Human类里的static成员。";        public function eat($food){            echo $this->name." is eating ".$food."<br/>";        }    }    /**    * NbaPlayer类定义    */    class NbaPlayer extends Human{//extends:表示继承,php中extends只能跟一个类的类名(单继承原则)        //属性        public $team="PTS";        public $playerNum="1221";        private $age= 12;        //静态属性定义        public static $president="David";        //静态方法定义        public static function changePresident($newPresident){            static::$president=$newPresident;            //self::$president=$newPresident;//在类定义中使用静态成员,用static或self::静态成员变量            //使用parent关键字访问父类的静态成员            echo parent::$staticValue."<br/>";        }        //构造函数        function __construct($name,$weight,$team,$playerNum){            echo "执行构造函数...<br/>";            $this->name=$name;//this是php里面的伪变量,自身            $this->weight=$weight;            $this->team=$team;            $this->playerNum=$playerNum;        }        //析构函数        function __destruct(){            echo "执行析构函数...<br/>";;        }        //定义方法        public function run(){            echo "Runing...\n";        }        public function jump(){        echo "Jumping...\n";        }        public function dribble(){            echo "Dribbling...\n";        }        public function shoot(){            echo "Shooting...\n";        }        public function dunk(){            echo "Dunking...\n";        }        public function pass(){            echo "Passing...\n";        }        public function getAge(){            echo $this->name."今年 ".$this->age." 岁了。<br/>";        }    }    //类的实例化    $pzy=new NbaPlayer("彭中耀","182cm","75kg","PTS","1221");    $pts=new NbaPlayer("彭小耀","128cm","15kg","PTS","1221");    echo $pzy->name."\n";    echo $pzy->eat("大西瓜");    //echo $pzy->age;    $pzy->getAge();    // echo $pzy->name."的联盟总裁是".$pzy->president;//x不能访问静态成员    // echo $pts->name."的联盟总裁是".$pts->president;    //类定义外访问静态成员:类名::静态成员变量    echo "前任是".NbaPlayer::$president."<br/>";    NbaPlayer::changePresident("彭大耀");    echo "现任是".NbaPlayer::$president."<br/>";?>
0 0