OOP基礎知識

1 面向過程&面向對象

    一、專一於解決一個問題的過程。面向過程的最大特色,是由一個一個的函數去解決處理這個問題的一系列過程。
    二、專一於由那個對象來處理一個問題。面向對象的最大特色,是有一個個具備屬性和功能的類,從類中拿到對象,進而處理問題。php

2 面向對象

一、什麼是類?
      具備相同屬性(特徵)和方法(行爲)的一系列個體的集合,類是一個抽象的概念
 二、什麼事對象?
      從類中,拿到的具備具體屬性值的個體,稱爲對象。對象是一個具體的個體
  三、類與對象的關係?
       類是對象的抽象化!對象是類的具體化!
       類僅僅代表這類對象有哪些屬性,可是不能具備具體的值,因此類是抽象的
       而對象,是將類的全部屬性賦值後,產生的具體個體,全部對象是具體的函數

3 類的聲明與實例化

一、如何聲明一個類:
       class 類名{
           訪問修飾符 $屬性[=默認值];
           [訪問修飾符 ]function 方法(){}
       }
   二、聲明一個類的注意事項:
       ①類名以內有數字字母下劃線組成,開頭不能使數字,必須符合大駝峯法則
       ②類名必須使用class修飾,類名後面必定不能有();
       ③屬性必需要帶訪問修飾符,方法能夠不帶訪問修飾符;
   三、實例化對象及對象屬性方法的調用?
       $對象名 = new 類名(); //()能夠不加
    
       類外部調用屬性和方法
       $對象名 -> 屬性名; //使用->調用屬性時,屬性名不能帶$
    
       類內部調用屬性和方法
       $this -> 屬性名;this

4 構造函數

一、什麼是構造函數?
       構造函數是類中的一個特殊函數,當咱們使用new關鍵字實例化對象時,至關於調用了類的構造函數;
   二、構造函數有什麼做用?
       實例化對象時,自動調用,用於給對象的屬性賦初值!
   三、構造函數的寫法?
       ①構造函數名,必須與類同名
       [public ]function Person($name){
           $this -> name = $name;
       }
       ②使用魔術方法__construct
       [public ]function __construct($name){
           $this -> name = $name;
       }
   四、構造函數注意事項:
       ①第一種寫法,構造函數名必須與類同名!!!
       ②若是一個類沒有手寫構造函數,則系統默認會有一個空參數構造,所以可使用new Person();
          若是咱們寫了帶參數的構造函數,則將不會再有空參構造,也就是不能直接使用new Person(); Person後面的()中的參數列表,必須符合
   構造函數的要求!!
       ③若是兩種結構函數同時存在,將使用__construct。
   五、析構函數:__destruct():
       ①析構函數在對象被銷燬釋放以前自動調用!
       ②析構函數不能帶有參數
       ③析構函數經常使用於對象使用完之後,釋放資源、關閉資源等
   六、魔術方法:
       PHP中,給咱們提供了一系列的__開頭的函數,這些函數無需本身手動調用,會在合適的時機自動調用,這類函數稱爲魔術函數。
       例如:function __construct(){} 在類new一個對象時自動使用
                  function __destruct(){} 在對象被銷燬時自動調用
     
       咱們要求除了魔術方法外,自定義的函數與方法不能使用__開頭
        
    最後,通常對於功能比較複雜的類,咱們會單獨的寫到一個類的文件中。
    類文件的命名,統一小寫,使用「類名(小寫).class.php」的方式命名。
    在其餘文件中使用這個類 時,能夠用include導入這個.class.php文件。
   spa

相關文章
相關標籤/搜索