PHP物件導向編程簡單一實例

來源:互聯網
上載者:User

標籤:xtend   對象   timezone   self   表示   開始   his   function   需要   

 <?phpdate_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";
?>

 

PHP物件導向編程簡單一實例

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.