溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php類和對(duì)象有什么關(guān)系

發(fā)布時(shí)間:2020-11-10 11:30:39 來(lái)源:億速云 閱讀:191 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹php類和對(duì)象有什么關(guān)系,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

  面向?qū)ο?Object Oriented,OO)是軟件開發(fā)方法。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。下面我們?yōu)榇蠹医榻B一下php中類與對(duì)象的關(guān)系。

一、類和對(duì)象的關(guān)系

  類的實(shí)體化結(jié)果是對(duì)象,而對(duì)象的抽象就是類。在開發(fā)過程中,我們通常都是先抽象(幻想)出一個(gè)類,再用該類去創(chuàng)建對(duì)象(實(shí)現(xiàn)幻想的內(nèi)容)。在程序中,直接使用的是我們(實(shí)現(xiàn)幻想)的對(duì)象,而不是抽象(幻想)的類。

二、面向?qū)ο蠛兔嫦蜻^程

1、什么是面向過程

  面向過程就好比一個(gè)人 自己洗衣服、做飯,什么事情都是自己解決

2、什么是面向?qū)ο?/strong>

  面向?qū)ο缶褪悄莻€(gè)人有了對(duì)象,讓對(duì)象去洗衣服、做飯。

三、如何抽象一個(gè)類

class 類名{
     成員屬性:
        姓名、性別、年齡、身高、體重
     成員方法:
        說(shuō)話、走路、學(xué)習(xí)、吃飯、開車
   }

  所有的類都是從成員屬性和成員方法這兩方面去聲明,屬性和方法都是類中的成員,所以屬性又叫做成員屬性,方法又叫做成員方法

1、成員屬性  -->特征

  在對(duì)象中直接聲明變量就稱為成員屬性,可以在類中聲明多個(gè)成員變量,即對(duì)象中可以有多個(gè)成員屬性

class Person{
    var $name;    //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的名字
    var age;      //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的年齡
    var $sex;     //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的性別
  }

2、成員方法  -->功能

class Person{
    var $name;    //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的名字
    var $age;      //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的年齡
    var $sex;     //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的性別
    function say(){   //聲明第一個(gè)方法
        echo '人在說(shuō)話';   //定義人說(shuō)話的功能
    }
    function run(){   //聲明第二個(gè)方法
        echo '人在跑步';   //定義人跑步的功能
    }
    function eat(){   //聲明第三個(gè)方法
        echo '人在吃飯';   //定義人吃飯的功能
    }
}

  對(duì)象就是把相關(guān)的屬性和方法組織在一起。其中成員屬性和成員方法都是可以選的,可以只有成員屬性,也可以只有成員方法,也可以沒有成員。

四、實(shí)例化對(duì)象

一個(gè)類可以聲明多個(gè)對(duì)象,讓對(duì)象去訪問成員屬性和成員方法

class Person{
    var $name;    //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的名字
    var $age;      //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的年齡
    var $sex;     //聲明第一個(gè)成員屬性,用于儲(chǔ)存人的性別
    function say(){   //聲明第一個(gè)方法
        echo '人在說(shuō)話';   //定義人說(shuō)話的功能
    }
    function run(){   //聲明第二個(gè)方法
        echo '人在跑步';   //定義人跑步的功能
    }
    function eat(){   //聲明第三個(gè)方法
        echo '人在吃飯';   //定義人吃飯的功能
    }
}
// 實(shí)例化對(duì)象
$sqyy = new Person();
//成員屬性賦值
$sqyy -> name = "伊川";
$sqyy -> sex = "男";
$sqyy -> age = 26;
//訪問對(duì)象中的成員方法
$sqyy->eat();

五、特殊的對(duì)象引用 "$this"

  上面的示例中,我們是實(shí)例化一個(gè)對(duì)象之后再給成員屬性賦值和訪問成員方法的。那么 $this也可以在成員方法中使用,代表的是當(dāng)前的這個(gè)對(duì)象

成員方法調(diào)用前的對(duì)象是誰(shuí),$this就代表誰(shuí)

class Person{
    var $name;   
     function info(){     
        $this ->name = "SQYY";
    }
  }

六、構(gòu)造方法與析構(gòu)方法

1、構(gòu)造方法

  構(gòu)造方法是對(duì)象創(chuàng)建完成后第一個(gè)被對(duì)象自動(dòng)調(diào)用的方法,會(huì)初始化這個(gè)對(duì)象,當(dāng)使用new關(guān)鍵字實(shí)例化對(duì)象時(shí)會(huì)自動(dòng)觸發(fā)。

<?php
    class Person{
        //下面是聲明人的成員屬性,都是沒有初始值的,在創(chuàng)建對(duì)象時(shí),使用構(gòu)造方法賦給初始值
        var $name;   //定義人的名字
        var $sex;    //定義人的性別
        var $age;    //定義人的年齡
        
        function __construct($name="SQYY",$sex="男",$age=1){
            $this -> name = $name;  //在創(chuàng)建對(duì)象時(shí),使用傳入的參數(shù)$name為成員屬性 $this->name賦初值
            $this -> sex = $sex;    //在創(chuàng)建對(duì)象時(shí),使用傳入的參數(shù)$sex為成員屬性 $this->sex賦初值
            $this -> age = $age;    //在創(chuàng)建對(duì)象時(shí),使用傳入的參數(shù)$sex為成員屬性 $this->age賦初值
        }
    
        //下面聲明人的成員方法
        function say(){
            echo "我的名字:" .$this ->name. " ,性別:" .$this -> sex ."  年齡" .$this ->age. "。<br>";
        }
    }
    
    $person1 = new Person();                   //創(chuàng)建對(duì)象$person1時(shí)會(huì)自動(dòng)執(zhí)行構(gòu)造方法,默認(rèn)傳參
    $person2 = new Person('張三');             //創(chuàng)建對(duì)象$person2時(shí)會(huì)自動(dòng)執(zhí)行構(gòu)造方法,傳入第一個(gè)參數(shù),其他默認(rèn)傳參
    $person3 = new Person('李四','男');        //創(chuàng)建對(duì)象$person3時(shí)會(huì)自動(dòng)執(zhí)行構(gòu)造方法,傳入前兩個(gè)參數(shù),其他默認(rèn)傳參
    $person4 = new Person('王五','女','20');   //創(chuàng)建對(duì)象$person4時(shí)會(huì)自動(dòng)執(zhí)行構(gòu)造方法,傳入所有參數(shù)
    
    $person1 ->say();
    $person2 ->say();
    $person3 ->say();
    $person4 ->say();
?>

運(yùn)行結(jié)果

php類和對(duì)象有什么關(guān)系

2、析構(gòu)方法

  對(duì)象在銷毀之前最后一個(gè)被對(duì)象自動(dòng)調(diào)用的方法,先創(chuàng)建 傳入變量后銷毀

<?php 
    header('Content-type:text/html;charset=utf-8');
    // 定義一個(gè)汽車的類
    class car{
        // 成員屬性
        public $name;
        public $color;

        //構(gòu)造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你創(chuàng)建了".$this->name.'<br>';
        }

        // 析構(gòu)方法
        public function __destruct(){
            echo "你銷毀了".$this->name.'<br>';
        }
    }

    // 實(shí)例化對(duì)象
    $hanma = new car('悍馬','粉色','H2');
    $bmw = new car('寶馬','紅色','X7');
    $benchi = new car('奔馳','黑色','s600');

    // unset($bmw);
    $bmw = '1111';
 ?>

運(yùn)行結(jié)果

php類和對(duì)象有什么關(guān)系

如果我們不引用變量,創(chuàng)建完對(duì)象之后就會(huì)銷毀。

<?php 

    header('Content-type:text/html;charset=utf-8');

    // 定義一個(gè)汽車的類
    class car{
        // 成員屬性
        public $name;
        public $color;

        //構(gòu)造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你創(chuàng)建了".$this->name.'<br>';
        }

        // 析構(gòu)方法
        public function __destruct(){
            echo "你銷毀了".$this->name.'<br>';
        }
    }

    // 實(shí)例化對(duì)象
    new car('悍馬','粉色','H2');
    new car('寶馬','紅色','X7');
    new car('奔馳','黑色','s600');

 ?>

運(yùn)行結(jié)果

php類和對(duì)象有什么關(guān)系

以上是php類和對(duì)象有什么關(guān)系的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI