<?phpdate_default_timezone_set("PRC");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開始,后面是類的名稱,類的命名通常第一個字母大寫,以中括號開始和結(jié)束//在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的類成員只能在內(nèi)部被訪問//靜態(tài)屬性在定義時在訪問控制關鍵字后面添加static關鍵字即可 public static $president = "David Stern";// 靜態(tài)方法在定義時在訪問控制關鍵字后面添加static關鍵字即可 public static function changePresident($newpresdt){//在類定義中使用靜態(tài)成員時,用self或者static關鍵字后面跟::操作符即可//注意,在訪問靜態(tài)成員屬性時,::后面需要跟$符號 self ::$president = $newpresdt;//使用parent關鍵字訪問父類中的靜態(tài)成員 echo parent::$sValue."\n"; }//構造函數(shù),在對象被實例化時自動調(diào)用 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"; }//析構函數(shù),在程序執(zhí)行結(jié)束時自動調(diào)用//析構函數(shù)通常被用于清理程序使用的資源。比如,程序使用了打印機,那么可以在析構函數(shù)里釋放打印機資源 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");//對象中的成員屬性通過->符號來訪問//在類定義外部訪問靜態(tài)屬性,可以用類名加::操作符的方法來訪問類的靜態(tài)成員//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實例化對象的時候,都會用類名后面的參數(shù)列表調(diào)用構造函數(shù)//$james = new NBaplayer("James","203cm","120kg","Heat","6");//echo $james->name."\n";// //通過把變量設置為Null,可以出發(fā)析構函數(shù)的調(diào)用// //當對象不會再被使用的時候,會觸發(fā)析構函數(shù)//$james1 = $james;//$james2 = &$james;//$james2 = null;//$james1 = null;// echo "From now on James will not be used.\n";
相關推薦:
Javascript面向?qū)ο髮嵗斀?/p>
PHP面向?qū)ο笾畼俗R對象實例詳解
js面向?qū)ο笾^承知識詳解
以上就是PHP關于面向?qū)ο缶幊虒嵗窒淼脑敿殐?nèi)容,更多請關注php中文網(wǎng)其它相關文章!