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

php類別和物件的關係

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

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關鍵字實例化對象時會自動觸發。

 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. "。
"; } } $person1 = new Person(); //创建对象$person1时会自动执行构造方法,默认传参 $person2 = new Person('张三'); //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参 $person3 = new Person('李四','男'); //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参 $person4 = new Person('王五','女','20'); //创建对象$person4时会自动执行构造方法,传入所有参数 $person1 ->say(); $person2 ->say(); $person3 ->say(); $person4 ->say(); ?>

運行結果

php類別和物件的關係

2、析構方法

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

name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.'
'; } // 析构方法 public function __destruct(){ echo "你销毁了".$this->name.'
'; } } // 实例化对象 $hanma = new car('悍马','粉色','H2'); $bmw = new car('宝马','红色','X7'); $benchi = new car('奔驰','黑色','s600'); // unset($bmw); $bmw = '1111'; ?>

運行結果

php類別和物件的關係

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

name = $name;
            $this->color = $color;
            echo "你创建了".$this->name.'
'; } // 析构方法 public function __destruct(){ echo "你销毁了".$this->name.'
'; } } // 实例化对象 new car('悍马','粉色','H2'); new car('宝马','红色','X7'); new car('奔驰','黑色','s600'); ?>

運行結果

php類別和物件的關係

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

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