7.3.2 PHP畫圖理解對象在內存中的形式

7.3.2 PHP畫圖理解對象在內存中的形式

當定義好類后,我們使用new關鍵字來生成一個對象。
$對象名稱 = new 類名稱();
$對象名稱 = new 類名稱([參數列表]);
由于對象資料封裝的特性,對象屬性(類中定義的變量)是無法由主程序區塊直接來訪問的,必須通過對象來調用類中所定義的屬性和行為函數,間接地達成存取控制類中資料的目的。

<?php
    //聲明一個電話類Phone
    class Phone {               
        //類中成員同上(略)
    }
    
    // 聲明一個人類Person
    class Person {                  
        //類中成員同上(略)
    }
    //通過Person類實例化三個對象$person1、$person2、$person3
    $person1 = new Person();        //創建第一個Person類對象,引用名為$person1
    $person2 = new Person();        //創建第二個Person類對象,引用名為$person2
    $person3 = new Person();        //創建第三個Person類對象,引用名為$person3
    //通過Phone類實例化三個對象$phone1、$phone2、$phone3
    $phone1 = new Phone();          //創建第一個Phone類對象,引用名為$phone1
    $phone2 = new Phone();          //創建第二個Phone類對象,引用名為$phone2
    $phone3 = new Phone();          //創建第三個Phone類對象,引用名為$phone3

對象中成員的訪問

類中包含成員屬性與成員方法兩個部分,我們可以使用“new”關鍵字來創建一個對象,即:$引用名 = new 類名(構造參數);那么我們可以使用特殊運算符“->”來訪問對象中的成員屬性或成員方法。如:
    $引用名 = new 類名(構造參數);
    $引用名->成員屬性=賦值;   //對象屬性賦值   
    echo $引用名->成員屬性;   //輸出對象的屬性    
    $引用名->成員方法(參數);//調用對象的方法

如果對象中的成員不是靜態的,那么這是唯一的訪問方式。

對象和類的關系:
對象是實際存在的,占有動態資源。
類是對象的藍圖,可能占有靜態資源。
對象屬性占有動態資源
類(靜態)屬性實際上是有類名字空間上的“全局變量”
性能考慮:
每個對象要單獨占用數據空間
增加的調用層次可能消耗執行時間

boyfriend.class.php

<?php
/*
 *  屬性
 *      性別:男
 *      年齡: 24
 *      身高: 175cm
 *      眼睛: 大
 *
 *
 *  行為
 *
 *      做飯
 *      做家務
 *  
 *   class 類名  {
 *      
 *
 *   }
 *
 *   注意:  在類的成員屬性前面一定要有一個修飾詞, 如果不知道使用什么修飾詞, 就可以使用var (關鍵字), 如果一旦有其它的修飾詞就不要有var
 *
 */


    class BoyFriend {
        //變量 (成員屬性)
        var $name = "gaoluofeng";
        var $age = 24;
        var $sex = "男";
        var $height = "175cm";
        var $eye = "big";


        //函數 (成員方法)
        public function doFan($rou, $cai) {
            return "做飯的功能<br>";
        }

        function doJW() {
            return "做家務的功能<br>";
        }
    }

    $bf1 = new  BoyFriend();

    $bf1 -> name = "張三";


    $bf2 = new BoyFriend;

    $bf2 -> name = "李四";

    echo $bf1->sex."<br>";
    echo $bf2->height."<br>";



    echo $bf1 -> dofan("牛肉", "土豆");
    echo $bf2 -> dojw();

test.php

<?php
    include "boyfriend.class.php";
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,914評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,764評論 18 399
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,141評論 6 13
  • 煙囪 cong Twinkle twinkle little starHow I wonder what you ...
    fupeng閱讀 290評論 0 0
  • 文:ShakespeareSky(莎士比亞斯基) 10 林萌打來電話的時候,已經快要過中秋節了,林萌說她實在是受不...
    ShakespeareSky閱讀 113評論 0 0