PHP入門04 -- 面向對象程序設計

一 、PHP實例化對象php

  一、注意:在類的成員屬性前面必定要有一個修飾詞,若是不知道使用什麼修飾詞,就可使用 var(關鍵字),若是一旦有其它的修飾詞就不要有 var。編程

  二、只要是對象中的成員,就必須使用這個對象來訪問到這個對象內部的屬性和方法函數

  三、構造函數this

    一、是對象建立完成以後,第一個自動調用的方法(特殊);spa

    二、方法名比較特殊,能夠和類名相同名的方法名;code

    三、給對象中的成員賦初始值使用的,傳參方式對象

<?php
        class BoyFriend {
            //變量(成員屬性)
            var $name = "張三";
            var $age = 18;
            var $height = "175cm";
            var $sex;
            //構造方法: $this => 類自己;sex=>變量;$sex=>初始化參數、
            //一開始就會執行(自動執行),
            function BoyFriend($sex){
                $this -> sex = $sex;
            }
            
            //函數(成員方法)    
            public function fnO($row, $cal){
                return "功能一";
            }    
        }

        //使用類前必須先 new  
        $bf1 = new BoyFriend();

        //調用類中的參數:->sex 不須要加 $
        echo $bf1 -> sex."<br>"
        //調用類中的方法,須要傳參數必須傳
        echo $bf1 -> fnO("1", "2");
    ?>

  四、封裝性是面向對象編程中的三大特性之一,封裝就是把對象中的成員屬性和成員方法加上訪問修飾符,使其儘量隱藏對象的內部細節,以達到對成員的訪問控制(切記不是拒絕訪問)blog

  五、public (公有的 默認的)、private   (私有的)、protected (受保護的)繼承

  六、魔術方法get

    __get() 

      一、自動調用,是在直接訪問私有成員時,自動調用! 一個參數;(用於替代通用的set賦值方法)

    __set()
      二、自動調用,是在直接設置私有屬性時,兩個參數;(用於替代通用的get取值方法)

    __isset()  在是用 isset() 判斷一個私有屬性時否存在時,自動調用 __isset() 魔術方法,參數則是屬性名稱;(檢測對象中成員屬性是否存在)

    __unset()  ;(銷燬對象中成員屬性方法)

2、類的繼承性、擴展性

  一、子類使用  extends  繼承父類  子類能夠將父類中全部的內容繼承過來;

  二、private:私有的, 只能類本身用,不能別人用,包括本身的子類也不能用;

  三、protected:保護的權限,只能是本身和本身的子類中可使用的成員,不能再外面使用

  四、pulic: 公開的權限(默認),全部均可以,本身,子類,類外部均可以使用

    class Person {
        public $name;
        protected $age;
        protected $sex;
        //引入參數
        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;
        }
        public function say() {
            echo "個人名子是:{$this->name},個人年齡是:{$this->age},個人性別是:{$this->sex}。<br>";
        }
        function eat() {
            echo "11111111111111<br>";
        }
        function run() {
        }
    }
    class Student extends Person{
        var $school;
        function study() {
        }
    }
    class Teacher extends  Student {
        var $gz;
        function jiao() {
            echo "個人名子是:{$this->name},個人年齡是:{$this->age},個人性別是:{$this->sex}。<br>";
        }
    }

    $t = new Teacher("高洛峯", 30, "男");
    $t -> jiao();
    echo $t->name;
相關文章
相關標籤/搜索