亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP面向對象編程

難度初級
時長 3小時14分
學習人數
綜合評分9.67
292人評價 查看評價
9.9 內容實用
9.7 簡潔易懂
9.4 邏輯清晰
    1. 子類中編寫跟父類方法名完全一致的方法可以完成對父類方法的重寫(overwrite)

    2. 對于不想被任何類繼承的類可以在class之前添加final關鍵字

    3. 對于不想被子類重寫的方法,可以在方法定義的前面添加final關鍵字

    4. 即使方法被重寫了,仍然可以用parent調用父類的該名稱的方法

    查看全部
    1. 靜態屬性用于保存類的公有數據

    2. 靜態方法里面只能訪問靜態屬性

    3. 靜態成員不需要實例化對象就可以訪問

    4. 類內訪問當前類的靜態成員用self/static關鍵字,子類訪問父類的靜態成員用parent關鍵字

    5. 類外可以用類名訪問類的靜態成員(包括靜態屬性和靜態方法)

    6. $this在類里面代指當前對象

    查看全部
  • php的extends只能繼承一個類,即為php的單繼承原則

    查看全部
  • 為什么使用面向對象

    查看全部
  • 接口
    查看全部
  • abstract 關鍵字定義類,即為抽象類。

    抽象類中使用abstract定義聲明一個方法,即為抽象方法,不需要具體實現。但在子類中需要實現。若方法沒有abstract定義,則需要具體實現。

    查看全部
  • 三大特性:封裝、繼承、多態。

    多態:一個接口可以被多個類實現,也可以被多個接口繼承。并且接口里定義的方法,被實現的方式不一樣。則為多態。

    查看全部
  • 1、parent關鍵字可以調用父類中的方法。即使是被子類重寫了。

    2、self關鍵字可以調用類自身的成員變量和方法,不管是靜態成員或者類常量(const CONST_VALUE=“”)

    3、static關鍵字用于訪問類自身的靜態成員。

    查看全部
  • final 關鍵字,讓方法不允許被重寫,讓類不允許被繼承。

    查看全部
  • 關鍵字:
    ? ? ? ?public:公共;protected:受保護的;private:私有的。

    ? ? ? ?public:哪里有可以訪問的到。

    ? ? ? ?protected:只能在自身類中,或被繼承的子類中訪問。

    ? ? ? ?private:只能在自身類中訪問,假如在外部一定要訪問,則在類中申明一個方法返回屬性。

    以上關鍵字聲明的屬性或方法,都是用$this->訪問。

    查看全部
  • static關鍵字可用于聲明屬性或方法為靜態成員。

    1、用static關鍵字,在類內部訪問,用self或static加::即可訪問;如子類要訪問,則使用parent加::訪問。訪問屬性時需注意要加上$符號。

    2、靜態成員不需要實例化即可訪問,則類名::靜態成員名即可

    3、靜態成員是用于保存類的共有數據。

    查看全部
  • <?php?

    class NbaPlayer{

    public $name;

    function __clone(){

    $this->name='TBD';

    }

    }

    $james=new NbaPlayer();

    $james->name='james'."\n";

    echo $james->name;

    $james2=clone $james;

    echo "Before set up jame2s's:".$james2->name."\n";

    $james2->name='james2';

    echo "james's:".$james->name."\n";

    echo "james2's:".$james2->name."\n";


    ??>


    __clone比較常用,用于對一個對象操作,但不想影響原有數據時。

    查看全部
  • <?php?

    class MagicTest{

    //__tostring會在把對象轉換為string時自動調用

    public function __tostring(){

    return "This is the class MagicTest";

    }

    //__invoke會把在對象當做一個方法的時候自動調用

    public function __invoke($x){

    echo "_invoke called with parameter ".$x."\n";


    }

    //方法的重載

    //這個方法的參數第一個就是調用的方法的名稱,第二個參數是方法調用的參數組成的數組

    public function __call($name,$arguments){

    echo "calling ".$name." with parament:".implode(",",$arguments)."\n";

    }

    //靜態方法的重載,需要將這個方法設定成static

    public static function __callStatic($name,$arguments){

    echo "calling static ".$name. " with parament:".implode(",",$arguments)."\n";

    }

    //屬性承載

    public function __get($name){

    return "getting? the property ".$name;

    }

    public function __set($name,$value){

    echo "setting the property".$name." to value".$value."\n";

    }


    public function __isset($name){

    echo "__isset invoked\n";

    return false;

    }

    public function __unset($name){

    echo "unsetting property ".$name."\n";

    }

    }




    $obj=new MagicTest();

    // echo $obj."\n";

    // $obj(5);

    // $obj->runTest("para1","para2");

    // //靜態調用

    // MagicTest::runTest("para1","para2");

    echo $obj->ClassName."\n";

    $obj->ClassName='magicClassX';

    echo '$obj->ClassName is set?'.isset($obj->ClassName)."\n";

    echo '$obj->ClassName is empty?'.empty($obj->ClassName)."\n";

    unset($obj->ClassName);

    ??>

    通過__get __set __isset __unset這四個魔術方法我們可以對沒有被的類進行操作

    查看全部
  • <?php?

    class MagicTest{

    //__tostring會在把對象轉換為string時自動調用

    public function __tostring(){

    return "This is the class MagicTest";

    }

    //__invoke會把在對象當做一個方法的時候自動調用

    public function __invoke($x){

    echo "_invoke called with parameter ".$x."\n";


    }

    //方法的重載

    //這個方法的參數第一個就是調用的方法的名稱,第二個參數是方法調用的參數組成的數組

    public function __call($name,$arguments){

    echo "calling ".$name." with parament:".implode(",",$arguments)."\n";

    }

    //靜態方法的重載,需要將這個方法設定成static

    public static function __callStatic($name,$arguments){

    echo "calling static ".$name. " with parament:".implode(",",$arguments)."\n";

    }

    public function __get($name){

    return "getting? the property ".$name;

    }

    public function __set($name,$value){

    echo "setting the property".$name." to value".$value."\n";

    }

    }




    $obj=new MagicTest();

    // echo $obj."\n";

    // $obj(5);

    // $obj->runTest("para1","para2");

    // //靜態調用

    // MagicTest::runTest("para1","para2");

    echo $obj->ClassName."\n";

    $obj->ClassName='magicClassX';


    ??>

    ?使用一個類庫時,可以使用__get來獲取某個方法

    查看全部
  • <?php?

    class MagicTest{

    //__tostring會在把對象轉換為string時自動調用

    public function __tostring(){

    return "This is the class MagicTest";

    }

    //__invoke會把在對象當做一個方法的時候自動調用

    public function __invoke($x){

    echo "_invoke called with parameter ".$x."\n";


    }

    //方法的重載

    //這個方法的參數第一個就是調用的方法的名稱,第二個參數是方法調用的參數組成的數組

    public function __call($name,$arguments){

    echo "calling ".$name." with parament:".implode(",",$arguments)."\n";

    }

    //靜態方法的重載,需要將這個方法設定成static

    public static function __callStatic($name,$arguments){

    echo "calling static ".$name. " with parament:".implode(",",$arguments)."\n";

    }

    }




    $obj=new MagicTest();

    // echo $obj."\n";

    // $obj(5);

    $obj->runTest("para1","para2");

    //靜態調用

    MagicTest::runTest("para1","para2");

    ??>

    通過魔術變量實現同一個方法的正常調用和非正常調用

    查看全部

舉報

0/150
提交
取消
課程須知
1、本門課程是立志想成為優秀程序員的必修課 2、基本概念部分適合所有人學習 3、實踐部分則需要有基本的PHP知識,這樣會更加有利于你對面向對象的理解和掌握
老師告訴你能學到什么?
1、面向對象的基本概念 2、面向對象的基本思路 3、面向對象的基本原則 4、類的概念和PHP實踐 5、繼承的概念和案例實踐 6、接口的概念和案例實踐 7、多態的概念和案例實踐 8、PHP中的魔術方法基本實踐

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!