Php物件導向基礎(1)

來源:互聯網
上載者:User

標籤:echo   區別   覆蓋   需要   final   通過   lin   personal   不同   

                              前 言
   這是我來到部落格園大家庭所寫的第一篇個人部落格,以後我也將在這裡記錄自己所學的點點滴滴。深知還有5個月不到的時間就要面臨找工作的窘境,但我還是想堅持有時間了就來寫點東西。儘管在寫這段前言的時候,我感覺我可以在看點其他的知識,但我還是想堅持下去,堅信會有不一樣的收貨。在這裡引用今早讀的一篇文章的話來激勵一起走在IT路上你和我,至於為何需要一些激勵,也許以前你有有過,也許未來你會有這樣的迷茫:Where should I go? and why shuold I go here? 至少現在的自己不再是那麼迷茫。“局促不安只能使人無所作為,只要關注最基本的東西,其他東西都會隨之而來的。Just do it!”,與君共勉。
  
1.什麼是建構函式? 
   建構函式是對給定的類或對象進行初始化(執行個體化)時執行的方法,一般用_construct()來表示,當使用new操作符在記憶體中建立類的新對象(執行個體)時他就會被調用,建構函式無需引用,在new的時候它會自動被引用和執行。
  來個例子:
  <?php
   class Person{
    private $name;
    private $age;
    function _construct($name,$age){ //建構函式
      this->name = $name;
      this->age = $age;
    }
    function personal_info(){
      echo "我的名字是$this->name,我今年$this->age歲。\n";
    }
    function _destruct(){ //解構函式
      echo "我是來釋放資源滴!";
    }
  }
    $p1 = new Person("小蝸牛",25);//建立Person類的一個對象p1
    $p1->personol_info();//調用Person類的personal_info()方法
  ?>

2.什麼是解構函式?
   在上面的例子中我們在Person類的最後定義了一個函數_destruct(),這就是解構函式,在指令碼執行完畢後,所有的對象都會自動調用解構函式,來清理資源。
   當然還可以用unset()函數來消除對象,但一般都不會顯示調用unset()函數,該函數一般用於節省記憶體。

3.成員變數前的private和protected區別?
   private用於定義私人的成員變數,通過private定義的類的成員變數,只能在本類的方法中可見;protected用於定義受保護的類,通過protected定義的類的成員變數,只能在本類或子類或父類的方法中可見。

4.類的繼承和重載
   首先,我們來看一個例子:
<?php
class Person{
protected $name;
protected $age;
function _construct($name,$age){
$this->name = $name;
$this->age = $age;
}
function personal_info(){
echo "我的名字是$this->name,我今年$this->age歲。";
}
function _destruct(){
echo "我是來清理記憶體滴!";
}
}
class Man extends Person{ // extends 用於類繼承
protected $height;
function _construct($name,$age,$height){
parant::_construct($name,$age,$height);//父類的函數可以通過parent::結構在子類中調用
$this->height = height;
}
function personal_info(){
parent::personal_info();
echo "我的身高是$this->height。\n";
}
function _destruct(){
parent::_destruct();
}

}
$man1 = new Man("小蝸牛",25,180);
$man1->personal_info();
$p2 = new Person("老蝸牛",50);
$p2->personal_info();
?>

  php中使用關鍵字extends繼承一個類,php不支援多繼承,即一個類只能有一個父類。

  當從父類繼承的方法不能滿足子類的需求時,可以對繼承的類進行改寫,這個過程叫做覆蓋或者重載。php中函數重載與C++中不同,C++中意為函數具有相同函數名稱,但是參數類型不同。

   當類中的方法標記為"final"時,該方法不能被重載。

final function personal_info(){
...//代碼
}

Php物件導向基礎(1)

聯繫我們

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