国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

public、protected、private的區別

2019-11-15 02:14:58
字體:
來源:轉載
供稿:網友
public、PRotected、private的區別

通過className::functionNmae()、實例化、parent、self得出結論

className::functionNmae() 需是靜態方法(public模式)

parent::functionNmae() 該類是靜態方法調用則父類需是靜態方法,該類普通方法調用不限制 。父類方法需是(public、protected兩種模式)。

self::functionNmae() 該類需是靜態方法(三種模式)

實例化:實例化后可訪問public模式的靜態方法或普通方法

一、直接訪問(通過 className::functionNmae()和實例化):

結論:

  | 可以 通過 className::functionNmae() 訪問public   | 可以 通過實例 $obj->functionName() 訪問   | 不可 通過 className::functionNmae() 訪問protected   | 不可 通過實例 $obj->functionName() 訪問   | 不可 通過 className::functionNmae() 訪問private   | 不可 通過實例 $obj->functionName() 訪問

<?php/** *  * @authors HG (hg0728@QQ.com) * @date    2015-05-26 17:12:02 * @version 1.0 */header("Content-type:text/html;charset=utf-8");class A {    static $name='這是類A的靜態變量';    static public function stc_pc(){        echo '這是類A的公共靜態方法<br />';    }    static function stc(){        echo '這是類A的靜態方法<br />';    }    static protected function stc_pd(){        echo '這是類A受保護的靜態方法<br />';    }    static private function stc_pe(){        echo '這是類A私有的靜態方法<br />';    }}A::stc_pc();//可訪問A::stc();//可訪問A::$name;//不報錯//A::stc_pd();//不可訪問//A::stc_pe();//不可訪問echo '<br><br>通過實例化訪問<br><br>';$a = new A();$a->stc_pc();//可訪問$a->stc();//可訪問//$a->$name;//報錯//$a->stc_pd();//不可訪問//$a->stc_pe();//不可訪問/********************          | 可以 通過 className::functionNmae() 訪問public    |           | 可以 通過實例 $obj->functionName() 訪問                  | 不可 通過 className::functionNmae() 訪問protected |           | 不可 通過實例 $obj->functionName() 訪問              | 不可 通過 className::functionNmae() 訪問private   |           | 不可 通過實例 $obj->functionName() 訪問    ********************/

二、直接訪問(self::functionNmae())

結論:

self::functionNmae();需是靜態方法(三種模式都可)

<?php/** *  * @authors HG (hg0728@qq.com) * @date    2015-05-26 17:18:50 * @version 1.0 */header("Content-type:text/html;charset=utf-8");class C {    static $name = "靜態變量";      static public function stc_pc(){                echo '靜態公共方法<br>';        self::stc_pd();        self::stc_pe();        self::stc();        //self::func();//報錯但有結果            }    static protected function stc_pd(){        echo '靜態受保護方法<br>';    }    static private function stc_pe(){                echo '靜態受保護方法<br>';    }    static function stc(){                echo '靜態普通方法<br>';    }    function func(){                echo '普通方法<br>';    }    }C::stc_pc();/******self::functionNmae();需是靜態方法(三種模式都可)******/

三、通過子類訪問父類(parent::functionNmae()和實例化)

結論:

parent::functionNmae(); private不可訪問$obj->functionNmae(); private不可訪問

<?php/** *  * @authors HG (hg0728@qq.com) * @date    2015-05-26 17:18:50 * @version 1.0 */header("Content-type:text/html;charset=utf-8");include '/class_a.php';class B extends A{        static public function index(){                parent::stc_pc();        parent::stc();        parent::stc_pd();        parent::$name;//不報錯        //parent::stc_pe();//不可訪問        echo '<br><br>通過實例化訪問<br><br>';        $a = new A();        $a->stc_pc();        $a->stc();        $a->stc_pd();        $a->$name;//報錯        //$a->stc_pe();//不可    }    }B::index();/******在子類中通過:parent::functionNmae(); private不可訪問$obj->functionNmae(); private不可訪問******/

四、

<?php/** *  * @authors HG (hg0728@qq.com) * @date    2015-05-28 11:54:03 * @version 1.0 */class functioninc{    function fc_a(){        echo '000  ';    }    static protected function fc_b(){        echo '111   ';      }    }class fun extends functioninc {    static function a(){        parent::fc_a(); //報錯 fc_a()不是靜態方法        parent::fc_b();    }    function b(){        parent::fc_a();        parent::fc_b();    }}/*在子類中靜態方法通過parent調用父類方法,父類方法需是靜態方法。普通方法通過parent調用父類方法,不限制。*/$a = new fun();$a->a();$a->b();

public: 公有類型 在子類中可以通過self::var調用public方法或屬性,parent::method調用父類方法     在實例中可以能過$obj->var 來調用 public類型的方法或屬性

protected: 受保護類型 在子類中可以通過self::var調用protected方法或屬性,parent::method調用父類方法 在實例中不能通過$obj->var 來調用 protected類型的方法或屬性

private: 私有類型 該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孟村| 会理县| 桑植县| 大同市| 邓州市| 梅河口市| 青浦区| 新巴尔虎右旗| 精河县| 元朗区| 环江| 方城县| 安徽省| 富裕县| 商河县| 五台县| 张家界市| 郑州市| 丘北县| 库尔勒市| 衡阳县| 蒙阴县| 郴州市| 铅山县| 中西区| 察隅县| 乌兰县| 万盛区| 宜兰县| 会理县| 乌审旗| 新竹县| 临沂市| 临沧市| 安吉县| 平凉市| 徐州市| 三河市| 乐亭县| 茌平县| 镶黄旗|