PHP關於物件導向編程執行個體分享

來源:互聯網
上載者:User
<?php/** * PHP物件導向編程簡單一實例 */date_default_timezone_set("PRC");/** 1.靜態屬性用於儲存類的公有資料* 2.靜態方法裡面只能訪問靜態屬性* 3.靜態成員不需要執行個體化對象就可以進行訪問* 4.類的內部可以通過self或者static關鍵字訪問自身靜態成員* 5.可以通過parent關鍵字訪問父類的靜態成員* 6.可以通過類的名稱在類定義外部存取靜態成員**/class Human{    public $name;    protected $height; //只有自身和子類可以訪問    public $weight;    private $isHungry = true; //不能被子類訪問    public static $sValue = "Static value in Human class"."\n";    public function eat($food){        echo $this->name."'s eating "."'$food"."\n";    }    public function info(){        echo "HUMAN :".$this->name. ";".$this->height.";".$this->isHungry."\n";    }}class Animal{}//類的定義以關鍵字class開始,後面是類的名稱,類的命名通常第一個字母大寫,以中括弧開始和結束//在PHP中用extends關鍵字表示類的繼承,後面跟父類的類名//PHP中extends後只能跟一個類的類名,這是PHP中的單繼承原則class NBaplayer extends Human{// public $name = "Jordan"; //定義屬性// public $height = "198cm";// public $weight = "98kg";    public $team = "Bull";    public $playernumber = "23";    private $age = "40"; //Private的類成員只能在內部被訪問//靜態屬性在定義時在存取控制關鍵字後面添加static關鍵字即可    public static $president = "David Stern";// 靜態方法在定義時在存取控制關鍵字後面添加static關鍵字即可    public static function changePresident($newpresdt){//在類定義中使用靜態成員時,用self或者static關鍵字後面跟::操作符即可//注意,在訪問靜態成員屬性時,::後面需要跟$符號        self ::$president = $newpresdt;//使用parent關鍵字訪問父類中的靜態成員        echo parent::$sValue."\n";    }//建構函式,在對象被執行個體化時自動調用    function __construct($name,$height,$weight,$team,$playernumber)    {        echo "in NBaplayer constuctor\n";        $this->name = $name; //$this是php裡面的偽變數,表示對象自身,可以通過$->this的方式訪問對象的屬性和方法        $this->height = $height;        $this->weight = $weight;        $this->team = $team;        $this->playernumber = $playernumber;        echo $this->height."\n";    }//解構函式,在程式執行結束時自動調用//解構函式通常被用於清理程式使用的資源。比如,程式使用了印表機,那麼可以在解構函式裡釋放印表機資源    function __destruct()    {        echo "Destroying ".$this->name."\n";    }//定義方法    public function run()    {        echo "running\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."'s age is ".($this->age - 2)."\n";    }}//類到對象的執行個體化//類的對象為執行個體化時使用關鍵字new,後面是類的名稱和一堆括弧//$jordan = new NBaplayer("Jordan","198cm","98kg","Bull","23");//$james = new NBaplayer("James","203cm","120kg","Heat","6");//對象中的成員屬性通過->符號來訪問//在類定義外部存取靜態屬性,可以用類名加::操作符的方法來訪問類的靜態成員//echo NBaplayer::$president." Before change"."\n";//NBaplayer::changePresident("Aadam Siver");//echo NBaplayer::$president."\n";//echo Human::$sValue."\n";//echo "Jordan : ".$jordan->president."\n";// echo "James : ".$james->president."\n";//echo $jordan->name."\n";//echo $jordan->getAge();//$jordan->info();//$jordan->eat("Apple"); //在子類中的對象上可以直接存取父類中定義的屬性和方法//對象中的成員方法通過->符號來訪問//$jordan->dribble();//$jordan->dunk();// $jordan->jump();// $jordan->pass();// $jordan->run();// $jordan->shoot();//// //每一次用new執行個體化對象的時候,都會用類名後面的參數列表調用建構函式//$james = new NBaplayer("James","203cm","120kg","Heat","6");//echo $james->name."\n";// //通過把變數設定為Null,可以出發解構函式的調用// //當對象不會再被使用的時候,會觸發解構函式//$james1 = $james;//$james2 = &$james;//$james2 = null;//$james1 = null;// echo "From now on James will not be used.\n";

相關推薦:

JavaScript物件導向執行個體詳解

PHP物件導向之標識對象執行個體詳解

js物件導向之繼承知識詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.