首頁  >  文章  >  後端開發  >  php類別和物件的關係

php類別和物件的關係

angryTom
angryTom原創
2019-08-22 14:17:253732瀏覽

php類別和物件的關係

  物件導向(Object Oriented,OO)是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,擴展到如資料庫系統、互動式介面、應用結構、應用平台、分散式系統、網路管理結構、CAD技術、人工智慧等領域。下面我們來為大家介紹一下php中類別與物件的關係。

推薦教學:PHP影片教學

#一、類別和物件的關係

  類別的實體化結果是對象,而物件的抽象就是類別。在開發過程中,我們通常都是先抽象(幻想)出一個類,再用該類去創建物件(實現幻想的內容)。在程式中,直接使用的是我們(實現幻想)的對象,而不是抽象(幻想)的類別。

二、物件導向與過程

1、什麼是面向過程

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

2、什麼是面向對象

  面向對象就是那個人有了對象,讓對象去洗衣服、煮飯。

三、如何抽象化一個類別

class 类名{
     成员属性:
        姓名、性别、年龄、身高、体重
     成员方法:
        说话、走路、学习、吃饭、开车
   }

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

#1、成員屬性  -​​->特徵

  在物件中直接宣告變數稱為成員屬性,可以在類別中宣告多個成員變量,即物件中可以有多個成員屬性

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
  }

2、成員方法  -->功能

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}

  物件就是把相關的屬性和方法整理在一起。其中成員屬性和成員方法都是可以選擇的,可以只有成員屬性,也可以只有成員方法,也可以沒有成員。

四、實例化物件

#一個類別可以宣告多個對象,讓物件去存取成員屬性與成員方法

class Person{
    var $name;    //声明第一个成员属性,用于储存人的名字
    var $age;      //声明第一个成员属性,用于储存人的年龄
    var $sex;     //声明第一个成员属性,用于储存人的性别
    function say(){   //声明第一个方法
        echo '人在说话';   //定义人说话的功能
    }
    function run(){   //声明第二个方法
        echo '人在跑步';   //定义人跑步的功能
    }
    function eat(){   //声明第三个方法
        echo '人在吃饭';   //定义人吃饭的功能
    }
}
// 实例化对象
$sqyy = new Person();
//成员属性赋值
$sqyy -> name = "伊川";
$sqyy -> sex = "男";
$sqyy -> age = 26;
//访问对象中的成员方法
$sqyy->eat();

五、特殊的物件參考"$this"

  上面的範例中,我們是實例化一個物件之後再給成員屬性賦值和存取成員方法的。那麼$this也可以在成員方法中使用,代表的就是當前的這個物件

#成員方法呼叫前的物件是誰,$this就代表誰

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

六、建構方法與析構方法

# 1、建構方法

  建構方法是物件創建完成後第一個被物件自動呼叫的方法,會初始化這個對象,當使用new關鍵字實例化對象時會自動觸發。

<?php
    class Person{
        //下面是声明人的成员属性,都是没有初始值的,在创建对象时,使用构造方法赋给初始值
        var $name;   //定义人的名字
        var $sex;    //定义人的性别
        var $age;    //定义人的年龄
        
        function __construct($name="SQYY",$sex="男",$age=1){
            $this -> name = $name;  //在创建对象时,使用传入的参数$name为成员属性 $this->name赋初值
            $this -> sex = $sex;    //在创建对象时,使用传入的参数$sex为成员属性 $this->sex赋初值
            $this -> age = $age;    //在创建对象时,使用传入的参数$sex为成员属性 $this->age赋初值
        }
    
        //下面声明人的成员方法
        function say(){
            echo "我的名字:" .$this ->name. " ,性别:" .$this -> sex ."  年龄" .$this ->age. "。<br>";
        }
    }
    
    $person1 = new Person();                   //创建对象$person1时会自动执行构造方法,默认传参
    $person2 = new Person(&#39;张三&#39;);             //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参
    $person3 = new Person(&#39;李四&#39;,&#39;男&#39;);        //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参
    $person4 = new Person(&#39;王五&#39;,&#39;女&#39;,&#39;20&#39;);   //创建对象$person4时会自动执行构造方法,传入所有参数
    
    $person1 ->say();
    $person2 ->say();
    $person3 ->say();
    $person4 ->say();
?>

運行結果

php類別和物件的關係

2、析構方法

  物件在銷毀之前最後一個被物件自動呼叫的方法,先創建傳入變數後銷毀

<?php 
    header(&#39;Content-type:text/html;charset=utf-8&#39;);
    // 定义一个汽车的类
    class car{
        // 成员属性
        public $name;
        public $color;

        //构造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.&#39;<br>&#39;;
        }

        // 析构方法
        public function __destruct(){
            echo "你销毁了".$this->name.&#39;<br>&#39;;
        }
    }

    // 实例化对象
    $hanma = new car(&#39;悍马&#39;,&#39;粉色&#39;,&#39;H2&#39;);
    $bmw = new car(&#39;宝马&#39;,&#39;红色&#39;,&#39;X7&#39;);
    $benchi = new car(&#39;奔驰&#39;,&#39;黑色&#39;,&#39;s600&#39;);

    // unset($bmw);
    $bmw = &#39;1111&#39;;
 ?>

運行結果

php類別和物件的關係

如果我們不引用變量,創建完物件之後就會銷毀。

<?php 

    header(&#39;Content-type:text/html;charset=utf-8&#39;);

    // 定义一个汽车的类
    class car{
        // 成员属性
        public $name;
        public $color;

        //构造方法
        public function __construct($name,$color){
            $this->name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.&#39;<br>&#39;;
        }

        // 析构方法
        public function __destruct(){
            echo "你销毁了".$this->name.&#39;<br>&#39;;
        }
    }

    // 实例化对象
    new car(&#39;悍马&#39;,&#39;粉色&#39;,&#39;H2&#39;);
    new car(&#39;宝马&#39;,&#39;红色&#39;,&#39;X7&#39;);
    new car(&#39;奔驰&#39;,&#39;黑色&#39;,&#39;s600&#39;);

 ?>

運行結果

php類別和物件的關係

以上是php類別和物件的關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn