7.3.1 PHP實例化對象

7.3.1 PHP實例化對象

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

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

對象中成員的訪問

類中包含成員屬性與成員方法兩個部分,我們可以使用“new”關(guān)鍵字來創(chuàng)建一個對象,即:
$引用名 = new
類名(構(gòu)造參數(shù));那么我們可以使用特殊運算符“->”來訪問對象中的成員屬性或成員方法。如:
$引用名 = new 類名(構(gòu)造參數(shù));
$引用名->成員屬性=賦值; //對象屬性賦值
echo $引用名->成員屬性; //輸出對象的屬性
$引用名->成員方法(參數(shù));//調(diào)用對象的方法
如果對象中的成員不是靜態(tài)的,那么這是唯一的訪問方式。

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

boyfriend.class.php

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


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


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

        function doJW() {
            return "做家務(wù)的功能<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";
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評論 18 399
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,420評論 6 13
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • ps:如無說明,下文中的“書”特指JavaScript高級程序設(shè)計這本書。 閉包:JavaScript高級程序設(shè)計...
    小彬前端閱讀 369評論 0 2

友情鏈接更多精彩內(nèi)容